




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Qwt是一個(gè)基于LGPL版權(quán)協(xié)議的開(kāi)源項(xiàng)目, 其目標(biāo)是提供一組2D的窗體庫(kù)顯示技術(shù)領(lǐng)域的數(shù)據(jù), 數(shù)據(jù)源以浮點(diǎn)數(shù)組或范圍的方式提供, 輸出方式可以是Curves(曲線),Slider(滾動(dòng)條), Dials(圓盤(pán)), compasses(儀表盤(pán))等等。 該工具庫(kù)基于Qt開(kāi)發(fā), 所以也繼承了Qt的跨平臺(tái)特性, 據(jù)原作者文檔所說(shuō), 該項(xiàng)目在Qt-win/Qt-x11/Qt-embedded(qvfb環(huán)境)上都測(cè)試過(guò), 運(yùn)行正常。 項(xiàng)目的主頁(yè)在:在網(wǎng)上搜了一下, 發(fā)現(xiàn)關(guān)于qwt的中文資料實(shí)在很少, 基本上只有關(guān)于編譯和安裝的文章。 實(shí)際上經(jīng)過(guò)筆者實(shí)踐, Qwt的編譯和運(yùn)行實(shí)在乏善可陳, qmake;m
2、ake就可以搞定, 沒(méi)什么可memo的東西, 所以這篇文章將以?huà)呙橹鳎?介紹Qwt的feature。當(dāng)然按照正常的順序, 我們還是從編譯安裝開(kāi)始。 從svn服務(wù)器上下載最新代碼:svn co進(jìn)入qwt目錄, 運(yùn)行你電腦上qt4對(duì)應(yīng)的qmake, 再運(yùn)行make編譯。如筆者環(huán)境中是$ cd qwt$ export PATH=/usr/local/Trolltech/Qt-4.5.1/bin/:$PATH$ qmake$ make編譯要花個(gè)幾分鐘的時(shí)間。 成功后在lib下會(huì)生成 libqwt.so*文件, 并且examples也參與編譯, 生成的binary在examples/bin下, 我們可
3、以運(yùn)行這些例子初步查看qwt的功能。$export LD_LIBRARY_PATH=$PWD/lib$cd examples/bin$ ./simplesimple是qwt自帶的例子中最簡(jiǎn)單的一個(gè), 一共只有一百來(lái)行的代碼, 實(shí)現(xiàn)了數(shù)學(xué)中的正弦函數(shù)(sin()和余弦函數(shù)(cos()曲線。 如下圖:這個(gè)例子里用到的核心類(lèi)有四個(gè)(以下內(nèi)容是筆者的理解, 有可能有不對(duì)的地方, 請(qǐng)酌情閱讀):QwtPlot類(lèi)似一個(gè)2D繪圖的容器, 里面可以放其他的QwtPlotItem派生類(lèi)對(duì)象, 比如本例子中使用的QwtPlotMarker等。(有點(diǎn)類(lèi)似Qt里的graphicsview的感覺(jué)。) 這個(gè)類(lèi)負(fù)
4、責(zé)控制繪圖數(shù)據(jù)的產(chǎn)生和傳遞, 并且繪制一個(gè)坐標(biāo)軸。QwtPlotMarker標(biāo)尺類(lèi), 用于繪制刻度線。QwtPlotCurve曲線類(lèi), 用于繪制各種曲線。QwtSyntheticPointData比較奇怪, 這是個(gè)undocumented的類(lèi), 估計(jì)不小心被作者遺漏了, 文檔中沒(méi)有提供該類(lèi)的說(shuō)明, 只能從源碼中尋找答案了, 這一點(diǎn)很讓人郁悶。 通過(guò)看code當(dāng)中的注釋和例子代碼, 筆者的理解是該類(lèi)負(fù)責(zé)產(chǎn)生數(shù)據(jù), 它的作用是提供固定數(shù)量的浮點(diǎn)數(shù)的點(diǎn), 點(diǎn)的數(shù)量在構(gòu)造類(lèi)時(shí)傳入。 獲取數(shù)據(jù)時(shí)QwtPlotCurve類(lèi)會(huì)調(diào)用該類(lèi)的y()方法獲取縱坐標(biāo)。程序的基本流程是:1、初始化繪圖容器, 設(shè)置坐標(biāo)軸
5、的參數(shù)/ Set axessetAxisTitle(xBottom, “x >”);setAxisScale(xBottom, 0.0, 10.0);/橫坐標(biāo)從0到10, xBottom表示橫坐標(biāo)的方向從下往上setAxisTitle(yLeft, “y >”);setAxisScale(yLeft, -1.0, 1.0); /縱坐標(biāo)1到1,yLeft表示縱坐標(biāo)的方向從左到右2、添加正弦余弦曲線/ Insert new curvesQwtPlotCurve *cSin = new QwtPlotCurve(”y = sin(x)”);#if QT_VERSION
6、 >= 0×040000cSin->setRenderHint(QwtPlotItem:RenderAntialiased);#endifcSin->setPen(QPen(Qt:red);/紅色曲線cSin->attach(this);QwtPlotCurve *cCos = new QwtPlotCurve(”y = cos(x)”);#if QT_VERSION >= 0×040000cCos->setRenderHint(QwtPlotItem:RenderAntialiased);#endifcCos->setPen(QP
7、en(Qt:blue);/藍(lán)色曲線cCos->attach(this);3、設(shè)置曲線的數(shù)據(jù)內(nèi)容/ Create sin and cos datacSin->setData(FunctionData(:sin);cCos->setData(FunctionData(:cos);4、添加橫縱標(biāo)尺線作為坐標(biāo)的參照/ Insert markers/ a horizontal line at y = 0QwtPlotMarker *mY = new QwtPlotMarker();mY->setLabel(QString:fromLatin1(”y = 0);mY->set
8、LabelAlignment(Qt:AlignRight|Qt:AlignTop);mY->setLineStyle(QwtPlotMarker:HLine);/線的方向mY->setYValue(0.0);/標(biāo)尺線畫(huà)在y0的位置mY->attach(this);/ a vertical line at x = 2 * piQwtPlotMarker *mX = new QwtPlotMarker();mX->setLabel(QString:fromLatin1(”x = 2 pi”);mX->setLabelAlignment(Qt:AlignLeft | Qt:AlignBottom);mX->setLabelOrientation(Qt:Vertical);mX->setLineStyle(QwtPlotMarker:VLine);mX->setLinePen(QPen(Qt:black, 0, Qt:DashDotLine);mX->setXValue(2.0 * M_PI);/該標(biāo)線畫(huà)在x2PI的位置mX->attach(this);同樣的功能如果用Qt來(lái)寫(xiě)的話(huà)需要寫(xiě)大量的繪圖代碼, 比較麻煩, 但使用Qwt的封
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼筋工人勞務(wù)合同范本
- 2024年九月數(shù)據(jù)中心砂礫石地基電磁脈沖防護(hù)條款
- 海南吊車(chē)出租合同范本
- 山西省忻州市忻府區(qū)某校2025屆數(shù)學(xué)四年級(jí)第二學(xué)期期末檢測(cè)試題含解析
- 河南省平頂山市重點(diǎn)達(dá)標(biāo)名校2025屆初三下學(xué)期期末學(xué)業(yè)水平調(diào)研英語(yǔ)試題試卷含答案
- 南昌工程學(xué)院《幼兒游戲與指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年浙江省溫州市民辦初三下學(xué)期第一次適應(yīng)性聯(lián)考英語(yǔ)試題試卷含答案
- 2025屆江蘇省泰州市姜堰區(qū)溱潼二中達(dá)標(biāo)名校初三下學(xué)期期末考試(化學(xué)試題文)試題含解析
- 新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《建筑設(shè)計(jì)概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省衡陽(yáng)市高中名校2025屆高三年級(jí)第一次模擬考試語(yǔ)文試題試卷含解析
- 《碳排放管理師》(高級(jí))培訓(xùn)考試模擬題及答案
- 2024年重慶市高考?xì)v史試卷(含答案)
- SH/T 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范(正式版)
- 湖南省張家界市慈利縣2023-2024學(xué)年八年級(jí)下學(xué)期期中考試物理試題
- 金屬非金屬地下礦山監(jiān)測(cè)監(jiān)控系統(tǒng)建設(shè)規(guī)范
- 2024年蘇州市軌道交通集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 新概念英語(yǔ)第2冊(cè)課文(完整版)
- 水培吊蘭的養(yǎng)殖方法要領(lǐng)
- 動(dòng)物的遷徙行為與地球生態(tài)系統(tǒng)
- 【小學(xué)心理健康教育分析國(guó)內(nèi)外文獻(xiàn)綜述4100字】
- 校園金話(huà)筒大賽(臨沂賽區(qū))策劃書(shū)
評(píng)論
0/150
提交評(píng)論