菜鸟初学做个总结。
第二章 创建对话框、
2.1子类化QDialog
finddialog.h
#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
在这个文件,书中说第4至7行是前置声明,告诉C++类的存在,而不用提供类的定义的所有细节。我使用Qt Creator5编译时inddialog.cpp就会一直报错,
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
缺少以上库的支持,修改如下:
#include <QCheckBox>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QHBoxLayout>
还缺少一个 布局管理的支持库。
这样就能通过编译了。