ISO C++禁止在QT Creator中声明'QPushButton',没有类型

Moh*_*nde 3 c++ qt qt-creator

我在Linux Ubuntu 9.10机器上运行QT Creator.我刚刚开始使用QT Creator,当我尝试构建我的项目时出现这个错误时我正在阅读教程:"ISO C++禁止声明'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
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 7

我想你只是缺少相应的头文件.你能试一下吗

#include <QtGui/QtGui> 
Run Code Online (Sandbox Code Playgroud)

相反,或者如果您愿意

#include <QtGui/QPushButton>
Run Code Online (Sandbox Code Playgroud)


Fra*_*eld 5

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

class QPushButton;
Run Code Online (Sandbox Code Playgroud)

始终更喜欢标头中的前向声明,并在.cpp中执行包含(在较大的项目中更快和更少的重新编译).