QT溫度計折線圖如何實現?
新入坑5天,現在在QT中創建一個widget界面,最底下有3個Pushbutton(開始,停止,清除),想在按鍵上面實現一張溫度測量折線圖,並且可以清除。現在的問題是坐標軸的數字有點頭疼,需要自己標么,而且用Pen來繪製折線的話不知道如何清除。而且我的想法是能把這張折線圖限制在一個區域內,我設置了Setwindow和viewWindow但左邊總是會到底,有什麼解決辦法嗎。
QcustomPlot 和QWT:從Qt4到Qt5都兼容,都是widget,如果你用的qml,很抱歉只能選用QChart,但是QChart只有Qt5.6以上版本才可用。
我自己寫過一套類似QWT的控制項庫,名字叫QUC=Qt Usercontrol
quc是一套和qwt類似的自定義控制項插件。
特點:
1:超過60個精美控制項,涵蓋了各種儀錶盤、進度條、指南針、曲線圖、標尺、溫度計、導航條、導航欄,flatui、高亮按鈕、滑動選擇器、農曆等。遠超qwt集成的控制項數量。
2:每個類都可以獨立成一個單獨的控制項,零耦合,每個控制項一個頭文件和一個實現文件,不依賴其他文件,方便單個控制項以源碼形式集成到項目中,較少代碼量。qwt的控制項類環環相扣,高度耦合,想要使用其中一個控制項,必須包含所有的代碼。
3:全部純Qt編寫,QWidget+QPainter繪製,支持Qt4.6到Qt5.8的任何Qt版本,支持mingw、msvc、gcc等編譯器,不亂碼,可直接集成到Qt Creator中,和自帶的控制項一樣使用,大部分效果只要設置幾個屬性即可,極為方便。
4:每個控制項都有一個對應的單獨的包含該控制項源碼的DEMO,方便參考使用。同時還提供一個所有控制項使用的集成的DEMO。
5:每個控制項的源代碼都有詳細中文注釋,都按照統一設計規範編寫,方便學習自定義控制項的編寫。
6:每個控制項默認配色和DEMO對應的配色都非常精美。
7:超過60個可見控制項,5個不可見控制項。
8:部分控制項提供多種樣式風格選擇,多種指示器樣式選擇。
9:所有控制項自適應窗體拉伸變化。
10:集成fontawesome圖形字體,享受圖形字體帶來的樂趣。
如果你用的是Qt5.7以下版本,請使用Qwt
Qwt User"s Guide: Qwt目前最成熟的,可以和Qt完美集成的圖表庫,包含了曲線圖、柱狀圖、餅狀圖、溫度計、旋鈕等大部分常用的圖表控制項這個庫的文檔詳細程度堪比Qt官方文檔。庫的編碼規範程度,和api設計的完備程度也堪比官方Qt。用的控制項同樣是繼承自QWidget,並且擴展性比Qt Widgets中的控制項高得多,堪比Qt的model-view-delegate體系。安裝方法:1、下載Qwt2、在開始菜單,qt目錄里,打開命令行工具,進入Qwt目錄3、qmake
4、nmake/mingw32_make/make,然後你可以在qwt的某個子目錄里找到qwt.dll、qwtd.dll5、可以在qwtconfig.pri中修改編譯設置,其中有個QWT_INSTALL_PREFIX就是qwt的安裝目錄,編譯完畢後使用make install就可以把生成文件安裝至目標目錄6、生成的文件里有個plugins目錄,裡面是designer子目錄。扔到Qt文件夾的同樣的designer目錄里,然後你獨立打開的Qt Designer程序里就能拖放qwt控制項了(如果是用MSVC編譯的qwt,那麼這個插件還能放到qt creator插件目錄里,於是qt creator里也能拖放控制項了。mingw版不行,因為qt creator默認是用msvc編譯發布的)7、用命令行工具在doc/html目錄下執行qhelpgenerator index.qhp -o qwt.qch,可以把幫助文檔打包為qt的幫助文件。然後在qt creator幫助設置,和qt assistant設置裏手動加上qwt.qch,就能在幫助系統里查看文檔了使用時,在你的工程里包含qwt.prf工程文件,就完成qwt庫依賴的配置了,比手動配動態鏈接庫方便得多如果你用的是Qt 5.7版,那麼有更簡單更強大的方法——Qt ChartsQt Charts是Qt官方提供的,類似qwt的圖標庫。不過在之前的版本里,僅對商用版開放,Qt 5.7里允許開源版使用。這個比qwt強得多……但使用時需注意,開源版的Qt Charts是使用GPLv3協議,意味著你使用它寫出來的程序,也必須遵循GPL協議進行開源。如果個人自己寫那隨便,如果是在公司寫商用軟體,你不開源官方就可以告你Qt Charts可以通過Qt的在線安裝程序安裝,如圖所示
用qt5.7以上的qtchart改,同時打開opengl渲染,這樣可以極大減輕處理器負擔,一般情況下一條曲線百萬個點都可以做到實時。而QTpen也就做到幾千個cpu就開始吃力了。
不建議自己造輪子,目前繪製圖形的開源API很多,比如QcustomPlot,或者5 Qchart或者QWt,都是非常好的API,建議使用!
推薦閱讀:
※如何閱讀Telegram(Desktop)的源代碼?
※為什麼 Qt 框架不是很流行?
※哪裡有QT項目視頻教程下載?
※qt中界面美化使用QSS的話有什麼好的模板或者開源網站提供qss文件?
※Qt如此強大為什麼就是火不起來呢?