qwt是一個基于LGPL版權協(xié)議的開源項目, 可生成各種統(tǒng)計圖。它為具有技術專業(yè)背景的程序提供GUI組件和一組實用類,其目標是以基于2D方式的窗體部件來顯示數(shù)據(jù), 數(shù)據(jù)源以數(shù)值,數(shù)組或一組浮點數(shù)等方式提供, 輸出方式可以是Curves(曲線),Slider(滾動條),Dials(圓盤),Compasses(儀表盤)等等,目前已經(jīng)應用到許多工業(yè)領域,同時qwt也致力于3d的開發(fā)。但許多時候,qwt的安裝配置難到了許多人,我曾經(jīng)也在這里原地踏步很久,為了給大家開發(fā)方便,把我的安裝經(jīng)驗分享給大家,避免少走點彎路。
1.前言
qwt有多強大,可以看看官網(wǎng)的截圖:
曲線類截圖:http://qwt.sourceforge.net/curvescreenshots.html
散點圖:http://qwt.sourceforge.net/scatterscreenshots.html
頻譜及外形輪廓圖:http://qwt.sourceforge.net/spectrogramscreenshots.html
工業(yè)控件類:http://qwt.sourceforge.net/controlscreenshots.html
其功能遠不止展示的這些,還包括移動圖線上的點修改圖線,在畫布上任意作圖,另外,qwt控件最大的優(yōu)點是它的靈活性,但這個靈活性也導致它偶爾會很麻煩
MFC
VS2010 使用TeeChart繪圖控件 - 之一 - 控件和類的導入VS2010 使用TeeChart繪圖控件 - 之二 - 繪制圖形(折線圖,柱狀圖)TeeChart繪圖控件 - 之三 - 提高繪圖的效率MFC下好用的高速繪圖控件-(Hight-Speed Charting)繪制動態(tài)曲線
Qt
qt超強精美繪圖控件 - QCustomPlot一覽qt超強繪圖控件qwt - 安裝及配置QtChart Qt官方繪圖控件
2.下載最新的qwt
如果你是使用qt5,那么需要最新版本的qwt控件,下載地址(已更新):http://sourceforge.net/projects/qwt/
windows下編程下載zip,ubuntu下載bz2的
還有個pdf說明文檔,下不下都無所謂,因為安裝包里面已經(jīng)有文檔了
下面說說安裝的問題
3.安裝
把下載的文件解壓縮放到一個固定目錄里
我在qt安裝目錄下面新建文件夾qtctrl,把所有第三方控件都放置在這里的
解壓完的文件如下圖所示
下面對它進行編譯
3.1 編譯控件
許多人在這里止步,在網(wǎng)上看到許多復雜的教程,又要寫命令行又要設置啥啥啥的,其實很簡單,直接雙擊qwt.pro這個文件,用qt Creator打開(建議用qt Creator打開)
點編譯(先在debug下和release模式下編譯都一樣),就開始編譯了,你可以去上個廁所,喝杯茶,上上網(wǎng)
編譯完會有個錯誤提示
這個正常,不用理他,只要編譯輸出那里沒有錯誤提示就行
好了,這就ok了,復雜的編譯過程就是點幾個鼠標而已
編譯完后會在原來的lib文件夾下生成dll和lib,同時會在目錄外生成qt creator用的插件dll
我們用到的是qwt.dll,qwt.lib,qwtd.dll,qwtd.lib。前者對應release版本,后者對應debug版本,其他文件可以刪除
在build-qwt-Desktop_Qt_5_1_1_MSVC201x_32bit-Release目錄下的designer目錄下的plugins目錄下的designer目錄下(@_@,囧rz)你會發(fā)現(xiàn)qwt_designer_plugin.dll和qwt_designer_plugin.lib
這些就是配置qwt的必要文件
3.2配置qwt
3.2.1 集成進Qt Designer
找到qt安裝目錄
目錄下的tools文件夾是qt creator的安裝位置,里面就是QtCreator,找到QtCreatorbinpluginsdesigner文件夾下,把編譯好的qwt_designer_plugin.dll放入。打開qtcreator,就能看的qwt控件了。
拖放幾個控件試著運行,這時軟件肯定是編譯不過的
由于頭文件dllqt creator都沒有找到,所以肯定是編譯不過的,現(xiàn)在又兩種方法
3.2.2 集成Qt Creator
方法1:(建議使用)
需要用到qwt的項目,打開它的pro文件
加入如下語句:
其中根據(jù)每個人的文件位置不一樣,只需要改動第一個語句就可以,就是定位到qwt的安裝位置的語句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#qwt設置
QWT_ROOT?=?d:/Qt/qtctrl/qwt-6.1.0#這里就是你qwt控件的位置,根據(jù)每個人計算機的不同來修改,別直接ctrl+c,ctrl+v
include(?$${QWT_ROOT}/qwtfunctions.pri?)
INCLUDEPATH?+=?$${QWT_ROOT}/src
DEPENDPATH??+=?$${QWT_ROOT}/src
%QWT_CONFIG??+=?QwtDll?%如果需要使用繼承時需要這句?--?下面依次類推
contains(QWT_CONFIG,?QwtFramework)?{
????LIBS??????+=?-F$${QWT_ROOT}/lib
}
else?{
????LIBS??????+=?-L$${QWT_ROOT}/lib
}
qwtAddLibrary(qwt)
contains(QWT_CONFIG,?QwtOpenGL?)?{
????QT?+=?opengl
}
else?{
????DEFINES?+=?QWT_NO_OPENGL
}
contains(QWT_CONFIG,?QwtSvg)?{
????QT?+=?svg
}
else?{
????DEFINES?+=?QWT_NO_SVG
}
win32?{
????contains(QWT_CONFIG,?QwtDll)?{
????????DEFINES????+=?QT_DLL?QWT_DLL
????}
}
#end?qwt?set
然后可以成功編譯應用程序了
方法2:(非常不建議)
把lib文件放置qt sdk的lib文件夾下,dll文件放置在sdk的bin文件夾下
qt sdk目錄根據(jù)版本不同不一樣,我的是vs2012版的,在c:QtQt5.1.15.1.1msvc2012目錄下其他的同理,2010的就在QtQt5.1.15.1.1msvc2010
把qwt.dll和qwtd.dll復制到qt安裝目錄下的bin文件夾中
把qwt.lib和qwtd.lib文件復制到qt安裝目錄的lib文件夾下
把src文件夾下的頭文件復制到qt安裝文件夾下的include文件夾下(新建qwt文件夾)
這樣就可以了,但是還是不能編譯成功,因為需要設置一下pro文件
在pro文件下加入如下語句
1
2
3
4
5
6
7
8
9
#qwt設置
include(d:/Qt/qwt-6.1.0/qwtfunctions.pri)
DEFINES?*=?QWT_DLL
CONFIG?+=?qwt
LIBS?+=?-Ld:/Qt/Qt5.0.2/5.0.2/msvc2010/lib-lqwt
INCLUDEPATH?+=?d:/Qt/qwt-6.1.0/src
DEPENDPATH?+=?d:/Qt/qwt-6.1.0/src
qwtAddLibrary(qwt)
#end?qwt
至此qwt的安裝配置就完成了。
qwt文件夾下有說明文檔和例子,通過他們都能掌握基本的操作,這里暫不細說了
注:
當你用qt creator編譯發(fā)現(xiàn)連接出問題時,你可以試下點“構建”-“清理所以項目”,當這個也沒有反應時,你可以手動把編譯的那個文件夾(默認和項目同級類似于“build-qwt-Desktop_Qt_5_1_1_MSVC201x_32bit-Release”這樣的樣式)全部刪除。之后再編譯,如果還有連接問題就是你代碼有問題了。