• 3705阅读
  • 7回复

[提问]C++ GUI Qt 4例子find [复制链接]

上一主题 下一主题
离线向西流
 
只看楼主 倒序阅读 楼主  发表于: 2013-04-01
关键词: FIND
#ifndef DIALOG_H#define DIALOG_H
#include <QDialog>
class QCheckBox;
class QLabel;
class QLineEdit;
class QPushButton;
class Dialog : public QDialog
{    Q_OBJECT    public:    explicit Dialog(QWidget *parent = 0);
private slots:    
void findClicked();    
void enableFindbutton(const QString &text);  
private:    
QLabel *label;  
QLineEdit *lineedit;    
QCheckBox *casecheckbox;    
QCheckBox *backwardcheckbox;    
QPushButton *findbutton;    
QPushButton *closebutton;
};
#endif // DIALOG_H
其中class QCheckBox;class QLabel;class QLineEdit;class QPushButton;都会提示forward declaration of
但是把他们均改为#include<Qlabel>这种形式就能成功运行,不知道这是为什么呢?w我用的是5.01版本

离线jdwx

只看该作者 1楼 发表于: 2013-04-01
回 楼主(向西流) 的帖子
h用前向声明:class QLabel,cpp里就要写:#include<QLabel>
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线向西流
只看该作者 2楼 发表于: 2013-04-01
回 1楼(jdwx) 的帖子
试了一下你说的方法,很成功
只是不知道写成前置声明,而不直接在头文件用#include有什么好处?编译的时候快一点?(哈,属于C++的问题)
还有书上有一句话:
在h文件中,本可以简单地添加一个<QtHui>包含即可,而不用包含 <QDialog>和QCheckBox、QLabel、QLineEdit;、QPushButton的前置声明
那么我是不是可以理解为QCheckBox、QLabel、QLineEdit;、QPushButton包含在<QtHui>里头?
但是cpp里头有写#include<QtGui>,还是出现前置声明的问题。必须另外包含QCheckBox、QLabel、QLineEdit;、QPushButton
离线jdwx

只看该作者 3楼 发表于: 2013-04-01
回 2楼(向西流) 的帖子
前置声明可以加快编译速度。
QtGui指的是Qt的gui模块,里面包括了很多的类,看看Qt目录下的include子目录。
但是cpp里头有写#include<QtGui>,还是出现前置声明的问题? 不会出问题。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线jdwx

只看该作者 4楼 发表于: 2013-04-01
关于前置声明可以找一本C++的书看一看。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线向西流
只看该作者 5楼 发表于: 2013-04-01
回 3楼(jdwx) 的帖子
#include <QApplication>
#include <QPushButton> 替换为#include<QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPushButton *button = new QPushButton("Quit");
    QObject::connect(button, SIGNAL(clicked()),
                     &app, SLOT(quit()));
    button->show();
    return app.exec();
}
本可以运行,但替换之后就不成了,不信试试。不知道高人用的是哪个版本,不知道是不是5.0.1版本有所改变
离线jdwx

只看该作者 6楼 发表于: 2013-04-01
回 5楼(向西流) 的帖子
你用的是那个版本?
看5楼代码是Qt4的,Qt5已经把QtGui分拆了,控件部分放到了Widgets模块里。
我用的是Qt5.0.1。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线向西流
只看该作者 7楼 发表于: 2013-04-01
回 6楼(jdwx) 的帖子
恩恩,我用的也是5.0.1,不过看的书是Qt4,似乎学Qt只有《C++ GUI Qt4编程》第二版比较好,网上所推荐的只有Qt4的书,没有Qt5
快速回复
限100 字节
 
上一个 下一个