qt超強繪圖控件qwt - 安裝及配置
轉自:http://blog.csdn.net/czyt1988/article/details/11999985
1 前言
qwt有多強大,可以看看官網的截圖:
曲線類截圖:http://qwt.sourceforge.net/curvescreenshots.html
散點圖:http://qwt.sourceforge.net/scatterscreenshots.html
頻譜及外形輪廓圖:http://qwt.sourceforge.net/spectrogramscreenshots.html
工業控件類:http://qwt.sourceforge.net/controlscreenshots.html
其功能遠不止展示的這些,還包括移動圖線上的點修改圖線,在畫布上任意作圖,另外,qwt控件最大的優點是它的靈活性,但這個靈活性也導致它偶爾會很麻煩
2.下載最新的qwt
如果你是使用qt5,那麼需要最新版本的qwt控件,下載地址(已更新):http://sourceforge.net/projects/qwt/
windows下編程下載zip,ubuntu下載bz2的
還有個pdf說明文檔,下不下都無所謂,因爲安裝包裏面已經有文檔了
下面說說安裝的問題
3 安裝
把下載的文件解壓縮放到一個固定目錄裏
我在qt安裝目錄下面新建文件夾qtctrl,把所有第三方控件都放置在這裏的
解壓完的文件如下圖所示
下面對它進行編譯
3.1 編譯控件
許多人在這裏止步,在網上看到許多複雜的教程,又要寫命令行又要設置啥啥啥的,其實很簡單,直接雙擊qwt.pro這個文件,用qt Creator打開(建議用qt Creator打開)
點編譯(先在debug下和release模式下編譯都一樣),就開始編譯了,你可以去上個廁所,喝杯茶,上上網
編譯完會有個錯誤提示
這個正常,不用理他,只要編譯輸出那裏沒有錯誤提示就行
好了,這就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)你會發現qwt_designer_plugin.dll和qwt_designer_plugin.lib
這些就是配置qwt的必要文件
3.2 配置qwt
3.2.1 集成進QtDesigner
找到qt安裝目錄
目錄下的tools文件夾是qt creator的安裝位置,裏面就是QtCreator,找到QtCreator\bin\plugins\designer\文件夾下,把編譯好的qwt_designer_plugin.dll放入。打開qtcreator,就能看的qwt控件了。
拖放幾個控件試着運行,這時軟件肯定是編譯不過的
由於頭文件dllqt creator都沒有找到,所以肯定是編譯不過的,現在又兩種方法
3.2.2 集成QtCreator
方法1:(建議使用)
需要用到qwt的項目,打開它的pro文件
加入如下語句:
其中根據每個人的文件位置不一樣,只需要改動第一個語句就可以,就是定位到qwt的安裝位置的語句
#qwt設置
QWT_ROOT = d:/Qt/qtctrl/qwt-6.1.0#這裏就是你qwt控件的位置,根據每個人計算機的不同來修改,別直接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目錄根據版本不同不一樣,我的是vs2012版的,在c:\Qt\Qt5.1.1\5.1.1\msvc2012\目錄下其他的同理,2010的就在Qt\Qt5.1.1\5.1.1\msvc2010\
把qwt.dll和qwtd.dll複製到qt安裝目錄下的bin文件夾中
把qwt.lib和qwtd.lib文件複製到qt安裝目錄的lib文件夾下
把src文件夾下的頭文件複製到qt安裝文件夾下的include文件夾下(新建qwt文件夾)
這樣就可以了,但是還是不能編譯成功,因爲需要設置一下pro文件
在pro文件下加入如下語句
#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編譯發現連接出問題時,你可以試下點“構建”-“清理所以項目”,當這個也沒有反應時,你可以手動把編譯的那個文件夾(默認和項目同級類似於“build-qwt-Desktop_Qt_5_1_1_MSVC201x_32bit-Release”這樣的樣式)全部刪除。之後再編譯,如果還有連接問題就是你代碼有問題了。