我在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
答案 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变量的默认设置,但是可以覆盖,这将导致编译器和/或链接器错误。