#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <QDialog>
class QCheckBox;
class QLabel;
class QLineEdit;
class 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
QDialog类继承于QWidget,是所有dialog类的基类。
QDialog适合用来执行短小的任务以及与用户之间的交互,分为模态和模态两种类型,对于模态又分为application modal & window modal, 前者是阻塞所有非己窗口的事件直到自己被关闭,后者则只阻塞和自己相关的窗口的事件。
如果想以Application Modal的方式创建dialog,则调用exec()。更为灵活的是使用setWindowModality(),然后调用show()来确定以哪种模态形式(上面提到的两种)。
QDialogButtonBox可以方便的创建各种标准类型的按钮Layout。可以把很多按钮组合在一个QDialogButtonBox中,当某个按钮被按下,该类就会自动发出信号