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

时间:2010-04-24 15:04:01

标签: 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

4 个答案:

答案 0 :(得分:7)

我认为你只是缺少相应的头文件。你能试试吗

#include <QtGui/QtGui> 

相反,或者如果您愿意

#include <QtGui/QPushButton>

答案 1 :(得分:5)

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

class QPushButton;

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

答案 2 :(得分:1)

你错过了这个:

#include <QtGui>

答案 3 :(得分:0)

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