2010-04-24 95 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變量的默認設置,但可以被覆蓋,這會導致編譯器和/或鏈接器錯誤。

相關問題