您好,登錄后才能下訂單哦!
小編給大家分享一下Qt圖形圖像開發曲線圖表模塊QChart庫怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Qt圖形圖像開發之曲線圖表庫QtChart編譯安裝詳細方法與使用實例
使用Qt曲線圖表模塊Chart庫首先要注意3點:
(1)在.pro文件中添加:
QT += charts
。(2)用到QChart的文件中添加:
QT_CHARTS_USE_NAMESPACE
,或者:using namespace QtCharts;在ui界面中拖入一個graphicsView控件,然后右擊提升為QChartView類,寫提升為的類:QtCharts::QChartView,頭文件寫:qchartview.h
(3)別忘了在用到QChartView的文件中添加
#include <QChartView>
如果編譯報錯,請依次執行:清除->執行qmake->構建
(1)QChart必須顯示在widget上,更確切地說,是必須把它顯示在QGraphicView控件中,眾所周知,QT的ui控件都可以作為獨立窗口直接顯示,所以這就是方法1。
(2)把QChart顯示在ui界面的QGraphicView控件中。
PS:把QChart顯示在QGraphicView控件中,程序略顯繁瑣,QT早就為我們封裝好了一個ui控件類QtCharts::QChartView,它繼承了QGraphicView。這就是上文提到的把QGraphicView提升成了QChartView。用QChartView來顯示QChart還是很方便的。
用QGraphicView來顯示QChart較為繁瑣,下面來對比一下,分別用QGraphicView和QChartView來顯示QChart,代碼量的區別:
(1)用QGraphicView來顯示,需要借助QGraphicsScene類。具體地說就是,QGraphicView在最底層,QGraphicsScene在中間,QChart在最外層。
QGraphicsScene scene;//場景(中間層) QGraphicsView view(&scene);//視圖(最底層) view.setRenderHint(QPainter::Antialiasing);//設置視圖抗鋸齒 view.setSceneRect(0, 0, 630, 280);//設置視圖大小 QLineSeries *lineseries = new QLineSeries();//圖表的數據集 lineseries->append(0, 5);//append和<<功能差不多 *lineseries << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2); QChart *lineChart = new QChart();//圖表(最頂層) lineChart->addSeries(lineseries); // 將 數據集 添加至圖表中 scene.addItem(lineChart);//把圖標添加到場景中(一個場景中允許添加多個圖表) view.show();//視圖顯示
(2)用QChartView來顯示QChart較為方便
QLineSeries *lineseries = new QLineSeries();//圖表的數據集 lineseries->append(0, 5);//append和<<功能差不多 *lineseries << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2); QChart *lineChart = new QChart();//圖表(最頂層) lineChart->addSeries(lineseries); // 將 數據集 添加至圖表中 QChartView *chartView = new QChartView(chart);//QChartView 可以一步到位直接顯示QChart chartView->setRenderHint(QPainter::Antialiasing);//繼承來的抗鋸齒方法 chartView->resize(400, 300); chartView->show();//本示例代碼,把該控件作為窗口直接顯示出來。 //其實,也可以把QChartView的父控件設置為主UI,這樣就能把QChartView顯示在主窗體中了
最后再來捋一下各個類之間的層次關系。下圖中,大括號“{”代表左邊實體包含右邊實體,下箭頭↓↓↓↓代表繼承關系
以上是“Qt圖形圖像開發曲線圖表模塊QChart庫怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。