`
xnnyygn
  • 浏览: 44147 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

第一个比较复杂的QT程序

    博客分类:
  • qt
阅读更多
linux下,使用qt creator,按照<<C++ GUI Progamming with Qt4>>上的例子进行开发.
注意,这个不是用表单设计器做的,是使用layout手动做的.

最终结果截图如下:


核心代码如下:
FindDialog.h
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <QDialog>
#include <QCheckBox>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>

class FindDialog : public QDialog{
        Q_OBJECT
public:
        FindDialog(QWidget *parent=0);
signals:
        void findNext(const QString &str, Qt::CaseSensitivity cs);
        void findPrevious(const QString &str, Qt::CaseSensitivity cs);
private slots:
        void findClicked();
        void enableFindButton(const QString &text);
private:
        QLabel *label;
        QLineEdit *lineEdit;
        QCheckBox *caseCheckBox;
        QCheckBox *backwardCheckBox;
        QPushButton *findButton;
        QPushButton *closeButton;
};
#endif // FINDDIALOG_H



FindDialog.cpp
#include <QtGui>
#include "FindDialog.h"

FindDialog::FindDialog(QWidget *parent):QDialog(parent){
        label=new QLabel(tr("Find &what:"));
        lineEdit=new QLineEdit;
        label->setBuddy(lineEdit);
        caseCheckBox=new QCheckBox(tr("Match &Case"));
        backwardCheckBox=new QCheckBox(tr("Search &backward"));
        findButton=new QPushButton(tr("&Find"));
        findButton->setDefault(true);
        findButton->setEnabled(false);
        closeButton=new QPushButton(tr("Close"));
        connect(lineEdit,SIGNAL(textChanged(QString)),
                        this, SLOT(enableFindButton(QString)));
        connect(findButton, SIGNAL(clicked()),
                this, SLOT(findClicked()));
        connect(closeButton, SIGNAL(clicked()),
                        this, SLOT(close()));
        QHBoxLayout *topLeftLayout = new QHBoxLayout;
        topLeftLayout->addWidget(label);
        topLeftLayout->addWidget(lineEdit);
        QVBoxLayout *leftLayout = new QVBoxLayout;
        leftLayout->addLayout(topLeftLayout);
        leftLayout->addWidget(caseCheckBox);
        leftLayout->addWidget(backwardCheckBox);
        QVBoxLayout *rightLayout=new QVBoxLayout;
        rightLayout->addWidget(findButton);
        rightLayout->addWidget(closeButton);
        rightLayout->addStretch();
        QHBoxLayout *mainLayout=new QHBoxLayout;
        mainLayout->addLayout(leftLayout);
        mainLayout->addLayout(rightLayout);
        setLayout(mainLayout);
        setWindowTitle(tr("Find"));
        setFixedHeight(sizeHint().height());
}

void FindDialog::findClicked(){
        QString text = lineEdit->text();
        Qt::CaseSensitivity cs=
                caseCheckBox->isChecked()? Qt::CaseSensitive
                    :Qt::CaseInsensitive;

        if(backwardCheckBox->isChecked()){
                emit findPrevious(text,cs);
        }else{
                emit findNext(text,cs);
        }
}

void FindDialog::enableFindButton(const QString &text){
        findButton->setEnabled(!text.isEmpty());
}
分享到:
评论

相关推荐

    qt程序中嵌入第三方exe外壳实例程序

    在本文中,我们将深入探讨如何在Qt程序中嵌入第三方的EXE外壳程序,并通过一个名为"QtEmbedOutDemo"的实例项目来演示这一过程。这个项目涉及到的主要知识点包括Qt框架、窗口部件(Widget)的使用、进程间通信(IPC)...

    Linux下打包发布QT程序,并运行在其他没有安装QT环境或多个QT环境的linux系统上

    在Linux环境下,开发...通过以上步骤,我们可以成功地将Qt程序打包为一个独立的运行环境,使其能在多种Linux系统上运行,而无需额外安装Qt库。这个过程虽然相对复杂,但对于确保软件的可移植性和易用性是至关重要的。

    我的第一个QT程序

    标题“我的第一个QT程序”表明我们将讨论如何在QT环境中创建一个基础的“Hello, World!”程序。这通常是初学者入门QT编程的第一步,旨在熟悉环境设置、构建过程以及基础的代码编写。 描述中提到“building: hello...

    我的第一个qt4程序

    在本文中,我们将深入探讨如何创建“我的第一个qt4程序”,这是一个使用Qt 4框架的简单应用程序。Qt 4是一个跨平台的C++图形用户界面工具包,它提供了丰富的库来构建桌面、移动和嵌入式系统的应用。在这个项目中,...

    Qt程序打包工具

    **Qt程序打包工具详解** Qt程序打包工具是用于将基于Qt框架开发的应用程序打包成可独立运行的可执行文件的工具。这样的工具简化了分发和安装过程,使得用户无需在目标计算机上安装完整的Qt库就能运行应用程序。本文...

    Linux与Qt程序设计 高清PDF 第二部分

    名称:《Linux与Qt程序设计 (陈爽) 高清PDF》 包含Linux的概述 常用的命令 Linux系统的配置和安装,涵盖QT基础知识以及QT高级开发,对于初学者或中高级学者都适用。...第一部分:《Linux与Qt程序设计》.part1.rar

    QT程序自启动

    特别是对于那些资源有限的嵌入式系统而言,如何确保QT程序能够在系统启动时自动运行成为了一个非常重要的课题。本文将详细讲解在基于ARM架构的开发板上实现QT程序自启动的具体步骤,包括必要的库文件编译、环境变量...

    QT5.14入门教程GUI(一)第一个QT程序Hello World! -HelloWorld.7z

    QT5.14入门教程GUI(一)第一个QT程序Hello World! QT5.14入门教程GUI(一)第一个QT程序Hello World! QT5.14入门教程GUI(一)第一个QT程序Hello World!

    第一个qt窗口程序

    适合初学者 1.从登陆窗口到主窗口 2.动态刷新显示时间 3.菜单栏添加图标及响应事件 4.登陆窗口两个lineedit 聚焦 5.演示状态栏使用 代码本来简单, 还有关键代码注释,所以不附上文档了。

    我的第一个Qt程序设计

    我的第一个QT程序

    Qt程序独立运行exe打包之封包 - shengzhe8688的专栏 - CSDN博客1

    【Qt程序独立运行exe打包】是指将...总之,Qt程序独立运行exe打包是一个将Qt应用简化为单一可执行文件的过程,通过结合`windeployqt`和`Enigma Virtual Box`,我们可以轻松地完成这一任务,使得程序更易于分发和使用。

    让QT只运行一个实例

    该文档详细描述了QT平台下,让应用程序只运行一个实例的三种方法,并附有相应的代码。

    我的第一个qt程序设计

    我的第一个qt程序设计

    Qt程序开发完全手册SE(上)

    《Qt程序开发完全手册SE(上)》是针对Qt编程的详尽教程,适用于初学者和有一定经验的开发者。Qt是一个跨平台的应用程序开发框架,它由Qt公司开发,广泛应用于桌面、移动设备以及嵌入式系统。本手册第二版旨在提供...

    QtService 实现Qt后台服务程序

    本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。 博客介绍:https://luoyayun361.blog.csdn.net/article/details/120655011?spm=1001.2014.3001.5502

    CentOS上运行不同版本的QT开发程序打包和路径设置

    QT是一个跨平台的应用程序开发框架,用于创建图形用户界面和其他软件。本篇文章将详细探讨如何在CentOS上配置环境以运行QT 5.14版本的程序,尽管系统默认已经安装了QT 5.6。 首先,为了安装QT 5.14,我们需要从官方...

    QT2.2.0 hello程序

    **第一步:设置变量和建立项目文件夹** 在开始编程之前,我们需要设置好环境变量,并创建一个专门的项目文件夹。进入Qt的根目录(例如:/opt/EmbedSky/Qte),然后运行`source setX86_QpeEnv`命令来设置环境。接着,...

    外部exe程序嵌入到Qt界面,点击按钮在QT中运行显示

    1. **创建Qt界面**:使用Qt Designer或直接编写代码创建一个Qt界面,其中包括一个或多个按钮。这个按钮将作为触发运行外部exe程序的触发器。 2. **连接按钮信号与槽**:在Qt中,信号和槽机制是事件处理的核心。我们...

    QT5发布程序需要的所有依赖库文件

    QT5是Qt开发框架的第五个主要版本,它是一个跨平台的应用程序开发工具包,支持Windows、Linux、macOS等多种操作系统。这篇文档将详细介绍在QT5中发布程序时需要的依赖库文件及其重要性。 首先,`icudt51.dll`是国际...

Global site tag (gtag.js) - Google Analytics