2010-04-24 13 views
3

Je cours QT Creator sur une machine Linux Ubuntu 9.10. Je viens de commencer avec QT Creator, et je suivais les tutoriels quand cette erreur apparaissait alors que j'essayais de construire mon projet: "ISO C++ interdit la déclaration de 'QPushButton' sans type". Ce problème apparaît dans mon fichier d'en-tête:ISO C++ interdit la déclaration de 'QPushButton' sans type dans QT Creator

#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

A quelle ligne est l'erreur? –

Répondre

7

Je pense qu'il vous manque simplement le fichier d'en-tête approprié. Pouvez-vous essayer

#include <QtGui/QtGui> 

à la place, ou si vous préférez la place

#include <QtGui/QPushButton> 
+1

Wow. Je dois me donner un coup de pied pour avoir oublié ça! –

5

En fait, serait assez déclaration en avant, du comprennent:

class QPushButton; 

préfèrent toujours en avant les déclarations des en-têtes, et faites l'inclure dans le .cpp (recompilations plus rapides et moins dans les grands projets).

0

Vous pouvez également vérifier le fichier .pro.
Avez-vous une entrée comme "QT = ..." quelque part? Si oui, essayez de changer cela en "QT + = ...". Les modules Core et GUI de Qt sont les paramètres par défaut de la variable QT, mais peuvent être écrasés, ce qui conduira à des erreurs du compilateur et/ou de l'éditeur de liens.