2011-04-01 318 views
3

我使用Qt creator 2.0.1,並進入這個行當:Qt創建和QLabel,爲什麼會出現錯誤?

#include <QLabel>

我得到以下錯誤:

QLabel: No such file or directory

這是爲什麼?而且,在這種情況下如何包含標籤?

UPDATE

@maverik告訴我如何解決QLabel錯誤,但現在我得到這個錯誤:

enter image description here

我想運行的程序是:

#include <QtCore/QCoreApplication> 
#include <QtGui/QLabel> 

int main(int argc, char *argv[]) { 
QCoreApplication myapp(argc, argv); 
QLabel *label = new QLabel("Hello"); 
label->show(); 
return myapp.exec(); 
} 

任何想法?

謝謝。

回答

1

試試這個:

#include <QtGui/QLabel> 
+0

感謝您的回覆。是的,我認爲這消除了'QLabel'問題。但是,我收到新的錯誤。檢查我的更新後的錯誤和我試圖運行的代碼。 – Simplicity 2011-04-01 09:27:32

+0

你以什麼方式建立項目?你使用makefile還是qmake?這個問題似乎是在鏈接時。你應該鏈接Qt庫,如qtgui和qtcore。最好的辦法是使用qmake。 – maverik 2011-04-01 09:58:17

3

檢查你的Qt項目 - 文件包含

QT += gui 
CONFIG += qt 

,並且不包含

QT -= gui 

我認爲這會導致連接問題。另外,我認爲

#include <QLabel> 

...應該是足夠的,如果項目文件是正確的。

+0

這可能是Maverik的首選答案。 – 2011-04-01 11:12:32

+0

感謝您的回覆。當我這樣做時,我得到一個控制檯窗口提到:'QWidget:無法在不使用GUI時創建QWidget',而第二行'此應用程序請求運行時終止.....',而' .exe文件因此停止工作。有任何想法嗎? – Simplicity 2011-04-02 06:58:55

5

使用

QApplication

不是

QCoreApplication

從QCoreApplication文檔:

The QCoreApplication class provides an event loop for console Qt applications. This class is used by non-GUI applications to provide their event loop. For non-GUI application that uses Qt, there should be exactly one QCoreApplication object. For GUI applications, see QApplication.

然後包括相關的頭文件,它將編譯就好了。 QCoreApplication適用於非Gui應用程序(控制檯)。

+1

是的,也許原來的海報已經使用Qt Creator來生成默認的控制檯應用程序,並在那裏添加了QLabel(這就是項目文件爲什麼會有QT - = gui定義的原因)。在這種情況下,他應該使用「Qt Gui應用程序」選項從創建者生成默認GUI應用程序。 – deo 2011-04-01 11:50:34

+0

感謝您的回覆。當我這樣做,我得到'QApplication:沒有這樣的文件或目錄' – Simplicity 2011-04-02 06:47:17

0

我想我找到了問題所在。

由於我使用的是Qt Creator,並且在創建新項目時,我選擇的是Qt Console Application而不是Qt Gui Application

+0

這是@deo得到的,所以你應該真的接受這個答案(@ soulSurfer2010解釋創建一個'QWidget'的後續問題)。 – Troubadour 2011-08-15 20:54:17

相關問題