代码来自http://www.informit.com/store/c-plus-plus-gui-programming-with-qt4-9780132354165
vs2008,Qt4.7.3
记录自己学习Qt4的过程,方便复习
//finddialog.h
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <QDialog>
//前置声明用于对话框实验的Qt类
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
class FindDialog : public QDialog//声明FindDIalog 并且把他作为QDialog的子类
{
Q_OBJECT//对于定义了信号槽的类,类定义开始必须写宏Q_OBJECT
public:
FindDialog(QWidget *parent = 0);//parent 参数指定其父窗口组件,默认值为0,也就是空指针,没有父对象
signals://用户单击find时发出的两个信号signal关键字实际上是一个宏
void findNext(const QString &str, Qt::CaseSensitivity cs);//Qt::CaseSensitivity 是一个枚举类型,它有两个值,Qt::CaseSensitive 和 Qt::CaseInsensitive
void findPrevious(const QString &str, Qt::CaseSensitivity cs);
private slots://两个槽,
/*
???
实现他们需要访问整个对话框的所有子部件,所以保留指向他们的指针
*/
void findClicked();
void enableFindButton(const QString &text);
/*
对以下的变量,使用了前置声明,因为他们都是指针,而且没必要在头文件就访问他们,因而编译程序无需这些类的完整定义
我们没有包含与这几个类相关的头文件,<QLabel>等,利用前置声明可以使得编译更快一些
*/
private:
QLabel *label;
QLineEdit *lineEdit;
QCheckBox *caseCheckBox;
QCheckBox *backwardCheckBox;
QPushButton *findButton;
QPushButton *closeButton;
};
#endif
//finddialog.cpp
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <QDialog>
//前置声明用于对话框实验的Qt类
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
class FindDialog : public QDialog//声明FindDIalog 并且把他作为QDialog的子类
{
Q_OBJECT//对于定义了信号槽的类,类定义开始必须写宏Q_OBJECT
public:
FindDialog(QWidget *parent = 0);//parent 参数指定其父窗口组件,默认值为0,也就是空指针,没有父对象
signals://用户单击find时发出的两个信号signal关键字实际上是一个宏
void findNext(const QString &str, Qt::CaseSensitivity cs);//Qt::CaseSensitivity 是一个枚举类型,它有两个值,Qt::CaseSensitive 和 Qt::CaseInsensitive
void findPrevious(const QString &str, Qt::CaseSensitivity cs);
private slots://两个槽,
/*
???
实现他们需要访问整个对话框的所有子部件,所以保留指向他们的指针
*/
void findClicked();
void enableFindButton(const QString &text);
/*
对以下的变量,使用了前置声明,因为他们都是指针,而且没必要在头文件就访问他们,因而编译程序无需这些类的完整定义
我们没有包含与这几个类相关的头文件,<QLabel>等,利用前置声明可以使得编译更快一些
*/
private:
QLabel *label;
QLineEdit *lineEdit;
QCheckBox *caseCheckBox;
QCheckBox *backwardCheckBox;
QPushButton *findButton;
QPushButton *closeButton;
};
#endif
//main.cpp
#include <QApplication>
#include "finddialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
FindDialog *dialog = new FindDialog;
dialog->show();
return app.exec();
}
转载于:https://blog.51cto.com/smilence/1328864