2010-04-24 94 views
3

我在Linux Ubuntu 9.10机器上运行QT Creator。我刚开始使用QT Creator,当我尝试构建项目时出现此错误时,我正在浏览教程:“ISO C++禁止声明'QPushButton'没有类型”。此问题出现在我的头文件中:ISO C++禁止在QT Creator中没有类型的'QPushButton'声明

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QtGui/QWidget> 

namespace Ui 
{ 
    class MainWindow; 
} 

class MainWindow : public QWidget 
{ 
    Q_OBJECT 

public: 
    MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

public slots: 
    void addContact(); 
    void submitContact(); 
    void cancel(); 

private: 
    Ui::MainWindow *ui; 
    QPushButton *addButton; 
    QPushButton *submitButton; 
    QPushButton *cancelButton; 
    QLineEdit *nameLine; 
    QTextEdit *addressText; 

    QMap<QString, QString> contacts; 
    QString oldName; 
    QString oldAddress; 


}; 
#endif // MAINWINDOW_H 
+0

在这行是错误? – 2010-04-24 15:09:26

回答

7

我认为你只是简单地缺少适当的头文件。你可以尝试

#include <QtGui/QtGui> 

代替,或者如果你喜欢

#include <QtGui/QPushButton> 
+1

哇。我得去踢我自己忘记这一点! – 2010-04-24 15:15:30

5

其实,向前声明就足够了,而不是包括:

class QPushButton; 

总是喜欢向声明在头文件中,并在.cpp 中执行这些包括(在较大的项目中更快和更少的重新编译)。

0

您可能还想检查.pro文件。
您是否有类似“QT = ...”的条目?如果是这样,请尝试将其更改为“QT + = ...”。 Qt的Core和GUI模块是QT变量的默认设置,但可以被覆盖,这会导致编译器和/或链接器错误。

相关问题