安裝Qt
前提
執行以下命令,保證安裝所需的庫,主要原因是:
- QT5系統缺少lGL圖形鏈接庫
- QT從5.8開始,編譯工具就必須要支持C++11標准的才行,而GCC版本4.8以上才支持這個標准。
sudo apt-get install g++
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev freeglut3-dev
Qt 安裝
在Linux環境下搭建Qt開發環境有兩種方式:一種是圖形界面的安裝,另一種是源代碼的安裝。這里為了方便,快速開發,使用基於圖形界面方式。
Qt各版本下載地址
Qt版本選擇的是:Qt 5.9.1 64位版本
步驟:
- 在QT官網下載Qt安裝包,這里下載qt-opensource-linux-x64-5.9.1.run,注意Qt5.9.1linux版本的只有64位,這是因為QT官方從Qt5.5以后不再支持32為版本。
- 執行如下命令:
sudo chmod +x qt-opensource-linux-x64-5.9.1.run
說明:該命令是為了給為Qt安裝包賦予可執行的權限。 - 然后再執行如下命令:
sudo ./qt-opensource-linux-x64-5.9.1.run
此時會彈出圖形化的安裝界面,之后的操作就跟Windows下安裝軟件相類似。
這里使用root權限安裝是因為要安裝在默認目錄/opt下,當然也可以選擇普通用戶安裝。
需要說明的是:qt-opensource-linux-x64-x.x.x.run包中包含了QtCreator可視化的開發工具,在安裝完后,找到安裝目錄下的Tools/QtCreator/bin目錄下發現有QtCreator可執行文件,該文件就是Qt可視化的開發工具。
- 最后,添加qt環境變量
qmake這個命令需要進行環境變量的配置才能找到並執行。具體做是在當前用戶的主目錄下面編輯對應的.bashrc文件。
執行如下命令:
cd
vim .bashrc
然后,在該文件末尾添加如下語句:
export PATH="/xxx/xxx//Qtx.x.x/x.x/gcc/bin":$PATH
中間的路徑即為Qt中qmake的絕對路徑。編輯完成后保存退出Vim(:wq)。然后再執行如下命令:
source .bashrc
設置即可生效。
注:這里我並不是這樣使用的,.bashrc僅僅對普通用戶生效。由於qt采用了root權限安裝,因此,這里root權限添加到 vim /etc/profile,在普通用戶模式下也生效,最后source即可。
sudo gedit /etc/profile
export PATH=$PATH:/opt/Qt5.6.0/5.6/gcc_64/bin
source /etc/profile
Hello Qt!
Linux下Qt編程(命令方式)
- 新建文件夾:
mkdir hello
,在文件夾下創建文件:cd hello
,vim hello.cpp
- 在hello.cpp中輸入代碼:
#include <QApplication>
#include <QLabel>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label=new QLabel("Hello QT!");
label->show();
return app.exec();
}
- 在終端下輸入命令:
qmake -project
,生成工程文件。此時在hello文件夾下生成hello.pro文件。 - 在終端下輸入命令:
qmake hello.pro
,生成Makefile - 在終端下輸入命令:
make
,進行編譯。生成hello可執行文件。 - 在終端下輸入命令:
./hello
,運行程序。
Qwt安裝
Qwt,全稱是Qt Widgets for Technical Applications,是一個基於LGPL版權協議的開源項目, 可生成各種統計圖。它為具有技術專業背景的程序提供GUI組件和一組實用類,其目標是以基於2D方式的窗體部件來顯示數據, 數據源以數值,數組或一組浮點數等方式提供, 輸出方式可以是Curves(曲線),Slider(滾動條),Dials(圓盤),Compasses(儀表盤)等等。該工具庫基於Qt開發,所以也繼承了Qt的跨平台特性。
QWT源碼目錄
designer
目錄:QWT插件的源碼
doc
目錄:幫助文檔
example
目錄:QWT簡單例子的源碼
src
目錄:QWT源碼
textengines
目錄:數學指標語言的文本驅動引擎代碼
playground
目錄:QWT開發中探索、測試新特性的模塊
qwt.pro
:工程文件
qwtconfig.pri
:配置文件
安裝目錄
QWT安裝后的目錄如下:
doc
:包括html和articles兩個目錄,存放qwt的說明文檔,其中html目錄就是qwt官方網頁的本地版本
features
: qwt的安裝配置文件
include
:所有qwt控件的頭文件都在這里
lib
:核心部分,由於默認配置文件是將qwt庫編譯成動態庫,因此本目錄下是4個so文件(實際上只有一個庫文件,另外三個是軟連接)
plugins
: Qt Designer的插件,用於在Designer或Creator設計器中將qwt顯示在左側的控件列表中。
安裝qwt
在安裝了qt開發環境后,先去其主頁下載qwt庫源代碼。
-
下載qwt,注意是ubuntu下安裝,我下載的是后綴為tar.bz2版本。下載地址
-
解壓后拷貝到/usr/local/下,用Qtcreator打開qwt.pro文件,注意選擇qmake的版本(因為Ubuntu默認環境下有一個qt版本,所有要選擇我們剛剛安裝的qmake)。
注意到官方安裝文檔有這么一句話:
Platforms
Qwt 6.1 might be usable in all environments where you find Qt.
It is compatible with Qt4 ( >= 4.4 ) and all Qt5 versions.
這里我們Qwt版本是6.1.3,Qt使用5.9版本,是滿足條件的。
然后->clean all (清除)-> run qmake(構建) ->build qwt
- 終端進入qwt.6.1.3目錄,
cd /usr/local/qwt6.1.3
使用5.9版本的qmake執行qmake,注意此時要進入相應qmake版本的目錄,我這里使用命令:
/opt/Qt5.9.1/5.9.1/gcc_64/bin/qmake
這一步可以生成Makefile文件
注:也可直接進入qwt.6.1.3文件夾后,在終端執行qmake qwt.pro
,也可生成Makefile文件。
- 接下來在qwt6.1.3目錄下看到Makefile文件后,執行
make
,然后執行sudo make install
,注意可能會出現小警告,我這里忽略了。
make
sudo make install
這樣就完成qwt6.1.3的安裝了,安裝的路徑是/usr/local/qwt-6.1.3
。
添加qwt庫路徑到鏈接器的路徑當中。使用了qwt庫的程序會鏈接到libqwt.so庫,而這個庫安裝路徑並不在系統環境變量內,所以要自己添加其路徑。
#編輯~/.bashrc在最后一行加上:
export LD_LIBRARY_PATH=/usr/local/qwt-6.1.3/lib
source ~/.bashrc
example測試成功
由於上面的編譯過程沒有自動編譯示例程序,需要我們手動編譯
所有示例程序都放在qwt-6.1.3/examples/目錄下,執行下面的命令:
cd examples
/opt/Qt5.9.1/5.9.1/gcc_64/bin/qmake #生成Makefile
make
編譯后的所有可執行程序就放在qwt/examples/bin/
目錄下。
- 拷貝lib文件
sudo cp /usr/local/qwt-6.1.3/lib/* /opt/Qt5.9.1/5.9.1/gcc_64/lib
- 拷貝so文件(添加插件)
首先確認生成的so文件
cd /usr/local/qwt-6.1.3/plugins/designer/
ldd libqwt_designer_plugin.so (該文件僅root是rwx權限,鏈接了libqwt.so.6)
注意,這里我之前犯的錯是將so文件拷貝錯了地方,應該是要拷貝到qtcreator的designer文件夾下,我拷貝到qt的designer目錄下,顯示不出來效果。正確的命令如下:
sudo cp /usr/local/qwt-6.1.3/plugins/designer/libqwt_designer_plugin.so /opt/Qt5.9.1/Tools/QtCreator/lib/Qt/plugins/designer
這一步我出錯了無數次,一定是在qt的designer
目錄下,而不是qt的gcc_64下面的lib,如果安裝在那個下面,在以qt設計師方式打開.ui文件時會出現failed get meta data
錯誤。
-
打開Qtcreator,雙擊打開一個ui文件,看designer有沒有qwt控件。若沒有,可以在ui界面下,單擊
tool
菜單 ->form editor
->about Qt designer plugins
下點擊refresh
,應該會有qwt插件,恭喜,安裝成功! -
在自己的項目中使用qwt時,需要在自己項目的pro文件添加
INCLUDEPATH += /usr/local/qwt-6.1.3/include
LIBS += -L "/usr/local/qwt-6.1.3/lib/" -lqwt