QT开发 查找窗口创建
2013-10-11 17:04
246 查看
刚开始学习QT开发,第一个查找窗口,按照书上写的,加上自己的一些理解注释
所包含文件有如下三个:
finddialog.cpp finddialog.h 和 main.cpp
mian.cpp为程序入口,finddialog.cpp为窗口的创建以及按钮的各种功能实现头文件为一些定义
头文件finddialog.h内容:
finddialog.cpp内容:
主函数main:
所包含文件有如下三个:
finddialog.cpp finddialog.h 和 main.cpp
mian.cpp为程序入口,finddialog.cpp为窗口的创建以及按钮的各种功能实现头文件为一些定义
头文件finddialog.h内容:
#ifndef FINDDIALOG_H #define FINDDIALOG_H #include <QDialog> class QCheckBox; class QLabel; class QLineEdit; class QPushButton; /* namespace Ui { class Dialog; }*/ class FindDialog : public QDialog { Q_OBJECT public: /*explicit Dialog(QWidget *parent = 0); ~Dialog();*/ 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: /*Ui::Dialog *ui;*/ QLabel *label; QLineEdit *lineEdit; QCheckBox *caseCheckBox; QCheckBox *backwardCheckBox; QPushButton *findButton; QPushButton *closeButton; }; #endif // FINDDIALOG_H
finddialog.cpp内容:
#include <QtGui> #include "finddialog.h" #include "ui_dialog.h" FindDialog::FindDialog(QWidget *parent) : QDialog(parent) //ui(new Ui::Dialog) { label = new QLabel(tr("Find &what:"));//新建一个label主窗口 lineEdit = new QLineEdit;//新建一个可编辑窗口lineEdit label->setBuddy(lineEdit);//把lineEdit窗口放在label窗口下 caseCheckBox = new QCheckBox(tr("Match &case")); backwardCheckBox = new QCheckBox(tr("Search *backward")); findButton = new QPushButton(tr("&Find")); findButton->setDefault(true);//让find按钮成为对话框的默认按钮 findButton->setEnabled(false);//让find按钮变成灰色,使其禁用 closeButton = new QPushButton(tr("Close"));//创建一个close按钮 //以下三个connect均用信号与槽对各按钮的功能链接 connect(lineEdit,SIGNAL(textChanged(const QString &)), this,SLOT(enableFindButton(const 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()); /*ui->setupUi(this);*/ } 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()); } /* Dialog::~Dialog() { delete ui; } */
主函数main:
//#include <QtGui/QApplication> #include <QApplication> #include "finddialog.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); FindDialog *dialog = new FindDialog; //创建一个窗口 dialog->show(); //显示这个窗口 //Dialog w; //w.show(); return app.exec(); }
相关文章推荐
- QTCreator + QTEmbedded 在Ubuntu上创建嵌入式ARM开发环境
- 【Qt开发】窗口切换
- 初识vb数据库开发之实例2(创建记录浏览窗口)
- QT 创建主窗口 MainWindow 实例
- Qt5开发学习总结(四)——资源文件的使用与主窗口QMainWindow实现登录框
- C#软件开发实例.私人订制自己的屏幕截图工具(二)创建项目、注册热键、显示截图主窗口
- QTCreator + QTEmbedded 在Ubuntu上创建嵌入式ARM开发环境
- QT中使用OpenGL(0)——创建一个窗口
- Qt软件开发文档15---聊天窗口的实现(2),QTextEdit+QPainter实现聊天框自适应大小
- [Qt教程] 第2篇 在Ubuntu14.04上创建Qt 5.4.0开发环境
- QT创建窗口程序、消息循环和WinMain函数
- 利用Qt的标准文件对话框及OpenCV创建窗口并显示图片
- Linux下程序开发:用QT创建新风格
- QT创建线程的窗口关闭,但是线程还在运行
- QT 初阶 第二章 创建对话框(查找对话框实例)
- firefox扩展开发(二):用XUL创建窗口控件
- 在Ubuntu14.04上创建Qt 5.4.0开发环境
- 移植到Qt4后一窗口部件在QSplitter上显示不出来问题原因查找处理
- 开发库测试库间触发器同步 查找某时间点后的触发器 生成其删除 创建 禁用的脚本
- Qt中OpenGL窗口创建的几种形式