2013-06-27 42 views
0

我是新來的Qt和剛剛安裝了最新版本的Linux(Ubuntu的薄荷13.04),開始我的編程。首先我已經使用github上BuildScript(這也安裝QtCreater,QtDesigner,QtAssistant和QtLinguist)安裝的Qt4。我還安裝了PySide,因爲我打算做一個Python gui編程。我不自覺地安裝QT5,但它的出現,沿着我做了一些線點。的Linux 13.04與QT4和QT5 - 讓失敗

從QT教程下面的程序說明我的問題:

#include <QApplication> 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QLabel *label = new QLabel("Hello Qt!"); 
    label->show(); 
    delete label; 
    return app.exec(); 
} 

現在運行:

..] $ qmake -project 
..] $ qmake 
..] $ make 
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB 
    -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I. 
    -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. 
    -o helloWorld.o helloWorld.cpp helloWorld.cpp:1:24: 
fatal error: QApplication: No such file or directory compilation terminated. 

這顯然意味着GCC沒有發現由QMAKE指定的庫QApplications。調查這樣的:

..] $ sudo find/-name QApplication* 
/usr/include/qt4/QtGui/QApplication 
/usr/include/qt5/QtWidgets/QApplication 
/home/drk/Canopy/appdata/canopy-1.0.1.1189.rh5-x86_64/include/QtGui/QApplication 

在make文件來看,提供的庫(可從編譯器線可以看出):

INCPATH = -I/usr/share/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qt5 
      -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. 

最後,看着QMAKE:

..] $ qmake --version 
QMake version 3.0 
Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu 

所以,你可以看到,儘管事實上我安裝了Qt4,並且在我的qt5庫目錄層次結構「QApplications」位於/ usr/include/qt5/QtWidgets而不是QtGui中,但qmake仍在假設qt 5.0.1。但是,qmake不會將QtWidgets /添加到我的包含庫中。

我不明白髮生了什麼......一個系統可以同時沒有qt4和qt5嗎?...我的qt5/qt5安裝是否出現損壞?...我如何獲得qmake使用Qt4?任何建議將不勝感激。

+0

是否有任何特定的原因,你創建和刪除QLabel甚至沒有到達事件循環? – dtech

+0

是的,愚蠢! ...感謝您搶佔我的錯誤! – dmon

回答

3

您可以同時在同一系統上的Qt 4和5。但是,它們之間幾乎沒有什麼區別,而且你正在擊中其中之一。在Qt 5,窗口小部件現在住在自己的模塊,所以你需要

QT += widgets 

添加到您的.pro文件並重新運行qmake

(你說你看不到屏幕上的任何東西之前:不刪除標籤!)

+0

很好,謝謝。 – dmon

1

看看是否有一個「qmake4」,「QT4,qmake的」或「QMAKE-QT4 「命令而不是」qmake「。

而且,你爲什麼要裝的Qt4外部? Ubuntu在其存儲庫中提供它。只需將它安裝在Ubuntu的包管理器中即可。這樣你可以確定它會被正確安裝。 Qt Creator也可以在Repos中找到。

+0

謝謝,是的,我有qmake-qt4,它工作的很棒:)我在外部安裝了Qt4,因爲這是Qt項目網站上推薦的方法。我之前在安裝過qt的repo時遇到了問題,所以我決定最好按照本書進行。 – dmon