QWT編譯、配置、使用(VS2012+Qt5.4.2,這裏和VS QT版本都無關,親自測過其他版本的VS和QT都沒有問題,本文檔以VS2012+Qt5.4.2爲例編寫)
(主要參考http://blog.sina.com.cn/s/blog_a6fb6cc90101gks5.html)
QWT,全稱是Qt Widgets for Technical Applications,是一個基於LGPL版權協議的開源項目,可生成各種統計圖。它爲具有技術專業背景的程序提供GUI組件和一組實用類,其目標是以基於2D方式的窗體部件來顯示數據,數據源以數值,數組或一組浮點數等方式提供,輸出方式可以是Curves(曲線),Slider(滾動條),Dials(圓盤),Compasses(儀表盤)等等。該工具庫基於Qt開發,所以也繼承了Qt的跨平臺特性。
QWT源碼獲取:
進入QWT的官方網站http://qwt.sourceforge.net/,找到svn下載地址,如下圖所示,選擇需要的版本,這裏選擇qwt-6.1。
如果你的操作系統沒有安裝svn,請先安裝svn,下載地址在這裏:https://tortoisesvn.net/downloads.html
從SVN倉庫獲得QWT源碼工程,如下圖所示:
a) 編譯QWT庫
打開vs開發人員命令行(如果從普通cmd進去可能找不到nmake),進入到剛剛svncheckout的目錄,我這裏是E:\Software\qwt-6.1,運行:
qmake qwt.pro;
nmake;
nmake install(默認將編譯的庫安裝到C盤下,這一步也可以不做,後面選擇直接將庫拷貝到Qt相應的目錄下)
b) 編譯例子
進入到examples目錄下,執行:
qmake example.pro;
nmake;
環境配置:
方法1:藉助Qt的環境配置,將qwt-6.1\lib 下的qwt.lib 、qwtd.lib 拷貝QT的lib路徑下;將qwt-6.1\lib下的qwt.bin、qwtd.lib下的qwt.dll、qwtd.dll拷貝到QT的bin路徑下;將qwt-6.1\src下的所有.h文件拷貝到QT的include\QWT路徑下。
方法2:在編譯qwt工程時,使用nmakeinstall將庫和頭文件安裝到C盤,並在環境變量裏設置path環境變量。
進行如上兩種方法之一的配置之後就可運行生成的demo程序了,比如運行qwt-6.1\examples\bin 目錄下的tvplot.exe,畫面如圖:
另外將qwt-6.1\designer\plugins\designer的dll和lib文件拷貝到QT的plugins\disgner目錄下,這樣就可在QT設計師裏使用QWT組件了,如下圖所示:
在VS中使用QWT:
1. 新建一個QT界面程序
2. 工程設置
屬性->配置屬性->鏈接器->輸入,附加依賴項:qwtd.lib
屬性->配置屬性->C/C++->預處理器,預處理器定義:QWT_DLL
3.舉一個使用QWT組件繪製2維矩陣數據等高線的例子
使用QwtPlotSpectrogram類繪製等高線,類圖:
CIsodoseCurves是數據類,存儲了一個3維矩陣數據,矩陣數據從文件獲取;
Contor是主窗口類,主窗口界面如下圖所示,當點擊繪圖時會繪製3維矩陣數據的一個2維平面的矩陣數據的等高線,並在窗口中顯示,如下圖。
QwtPlotSpectrogramText繼承自QwtPlotSpectrogram類,重新實現了drawContourLines函數,使在繪製登高顯示在登高線附近能繪製登高線的值;
plot繼承自QwtPlot,提供繪製登高線的窗口,每次點繪圖按鈕就會創建一個plot對象。
從畫面效果可以看出QWT繪製的圖形效果還是不錯的。[email protected]