2014-04-16 40 views
2

我是Qt編程新手,跟着這個tutorialQt錯誤:C: Users user-pc Proj1 main.cpp:6:錯誤:變量'QApplication prog'有初始值設定項但是不完整類型QApplication prog(argc,argv);

在本教程中,地球上的一個複雜的程序,它是這樣說:

#include "mainwindow.h" 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
    QApplication prog(argc, argv); 
    QLabel *l = new QLabel("Itay's First GUI in C++!!"); 
    l->show(); 
    return prog.exec(); 
} 

由於某種原因,我得到這些錯誤:

C:\Users\user-pc\Tutorial\main.cpp:6: error: variable 'QApplication prog' has initializer but incomplete type 
QApplication prog(argc, argv); 
       ^
C:\Users\user-pc\Tutorial\main.cpp:10: warning: control reaches end of non-void function [-Wreturn-type] 
} 
^ 

有人可以告訴我這種情況的原因?

+0

你沒有包含''? – Tay2510

+0

嘗試在文件頂部的'#include '。 – vahancho

回答

7

您需要包括QApplication頭:

#include <QApplication> 
+0

哇!謝謝!它解決了這一切! – user6969

+0

@ user6969如果它解決了您的問題,請記住接受該答案。 [閱讀本文以瞭解如何操作](http://stackoverflow.com/help/someone-answers)。 – thuga

0

錯誤消息「有初始值,但類型不完全」意味着該類向前聲明,而不是定義。

如前所述,#include <QApplication>解決了這個問題。

0

I'm new in Qt programming and followed the tutorial http://thenewboston.org/watch.php?cat=57&number=4 in this tutorial there is the most complicated program on earth and it goes like that:

你還沒有提到仔細聽視頻。讓我們看到了有關從視頻截圖:

enter image description here

正如你可以看到他們加入這一行:

#include <QtGui/QApplication> 

您的代碼卻丟失了,這就是爲什麼它不能編譯,因爲當您嘗試使用以下語句:

QApplication prog(argc, argv); 

它將找不到QApplication類的定義。

雖然您還有其他問題。你還包含「mainwindow.h」,而你並沒有真正的MainWindow實例。有了這兩個主要問題固定的,你的工作代碼應該是這樣的:

#include <QApplication> 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
    QApplication prog(argc, argv); 
    QLabel *l = new QLabel("Itay's First GUI in C++!!"); 
    l->show(); 
    return prog.exec(); 
} 

請注意,我用

#include <QApplication> 

,而不是

#include <QtGui/QApplication> 

因爲前者將工作與Qt 5一樣。 QApplication類和其他幾個類被放入QtWidgets模塊中。此外,這與QLabel包含更一致。

相關問題