Qt 创建对话框
来源:互联网 发布:sql server except 编辑:程序博客网 时间:2024/05/17 02:03
#ifndef FINDDIALOG_H#define FINDDIALOG_H#include <QDialog>class QCheckBox;class QLabel;class QLineEdit;class QPushButton;class FindDialog : public QDialog{ Q_OBJECT //对于所有定义了信号和槽的类,在定义开始处的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
#include <QLabel>#include <QCheckBox>#include <QPushButton>#include <QHBoxLayout>#include <QVBoxLayout>#include <QLineEdit>#include "finddialog.h"FindDialog::FindDialog(QWidget *parent) : QDialog(parent){ label = new QLabel(tr("Find &what:"));//快捷键Alt+W 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(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());}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());}
#include <QApplication>#include "finddialog.h"int main(int argc, char *argv[]){ QApplication app(argc, argv); FindDialog *dialog = new FindDialog; dialog->show(); return app.exec();}
程序运行截图:
0 0
- Qt学习--创建对话框
- 创建对话框---QT
- Qt创建对话框
- Qt创建对话框
- QT创建透明对话框
- Qt 创建对话框
- Qt创建对话框
- QT -- 创建对话框
- QT入门笔记--创建对话框
- QT 创建对话框 Dialog 实例
- Qt下完全手写创建对话框
- Qt 可扩展对话框创建--实验
- 十一、Qt新对话框创建与销毁
- QT学习笔记2:创建对话框
- Qt下完全手写创建对话框
- Qt创建对话框的三种方法
- Qt学习之路(4)创建对话框
- Qt自已创建打开系统对话框
- Android开发 消息推送 Push
- Maven(一)编译、测试、打包、安装
- 第四章 类和对象
- flink akka 应用
- Java中各种Stream和Reader,write
- Qt 创建对话框
- Mac模拟器进行远程调试
- java 创建文件 写入内容 读取内容
- Android:简单实现美女扒衣服小游戏
- mysql数据库简单的增删改查,数据导出操作
- iOS 设置视图半透明而子控件不透明
- HtmlAgilityPack 抓取网页信息
- 几个python语法知识(一)
- C++11 右值引用简化代码的例子