qt-dialog
来源:互联网 发布:南风知我意妈妈网 编辑:程序博客网 时间:2024/05/24 07:06
finddialog.h#ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QtGui/QDialog>// 用于对话框中的类的前置声明,// 这样会使编译更快一些class QCheckBox;class QLabel;class QLineEdit;class QPushButton;class FindDialog: public QDialog {// 要定义信号与槽都需要这个宏Q_OBJECTpublic:// 构造函数,没有父窗口FindDialog(QWidget *parent = 0); // 声明信号signals:void findNext(const QString &str, Qt::CaseSensitivity cs);void findPrevious(const QString &str, Qt::CaseSensitivity);// 声明槽private slots:void findClicked();void enableFindButton(const QString &text);private:QLabel *label;QLineEdit *lineEdit;QCheckBox *caseCheckBOX;QCheckBox *backwardCheckBox;QPushButton *findButton; QPushButton *closeButton;};#endif
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); // 设置伙伴// tr()是翻译成其他语言的标记caseCheckBOX = new QCheckBox(tr("Match &case"));backwardCheckBox = new QCheckBox(tr("Search &backward"));findButton = new QPushButton(tr("&Find"));findButton->setDefault(true); // 设置默认按钮findButton->setEnabled(false); // 禁用Find按钮closeButton = new QPushButton(tr("Close"));// 文本发生变化时调用connect(lineEdit, SIGNAL(textChanged(const QString &)),this, SLOT(enableFindButton(const QString &))); // 单击Find按钮时调用connect(findButton, SIGNAL(clicked()),this, SLOT(findClicked()));// 单击Close按钮时调用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());}// 用户点击Find按钮时就会调用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);}}// 只要用户改变了行编辑器中的文本,就会调用,否则禁用FIND按钮void FindDialog::enableFindButton(const QString &text){findButton->setEnabled(!text.isEmpty());}main.cpp--------------------------------#include "myapp.h"#include <QtGui/QApplication>#include "finddialog.h"int main(int argc, char *argv[]){QApplication a(argc, argv); FindDialog *dialog = new FindDialog;dialog->show();return a.exec(); }
- qt-dialog
- Qt Dialog
- QT: sort dialog
- QT widgets dialog
- Qt学习之Dialog
- QT dialog一种使用方法
- Qt dialog 对话框
- QT dialog 模态
- QT之对话框Dialog
- 在Qt的dialog中内嵌一个dialog
- QT 创建对话框 Dialog 实例
- QT(5)Dialog - Addressbook例子3
- QT中Dialog显示最大化最小化按钮
- QT Dialog 显示最大化最小化按钮
- Qt Tab Dialog Example 看看看~
- QT软件中加入新dialog
- qt之一个登陆dialog界面
- QT中Dialog显示最大化最小化按钮
- CROC-MBTU 2012, Final Round (Online version, Div. 2)
- ODBC驱动程序管理器无效的游标状态
- linux mount挂载设备(u盘,光盘,iso等 )使用说明
- char与unsigned char的本质区别
- mac下安装python-mysql
- qt-dialog
- “少年派”生命里的上帝与野兽
- 时间格式转换算法: XXXXXX -> XX:XX:XX
- iOS图片裁剪、绘制背景色
- desktop file entry detal
- ubuntu 下VirtualBox 共享设置
- python运行时修改代码的方法——monkey patch
- getSystemservice()原理
- SringIOC