Qt Charts 可以很方便地繪制常見的折線圖、柱狀圖、餅圖等圖表,不用自己耗費時間和精力開發(fā)繪圖組件或使用第三方組件了。
本章首先介紹 Qt Charts 的基本特點和功能,以畫折線圖為例詳細說明 Qt Charts 各主要部件的操作方法,再介紹各種常用圖表的繪圖方法,最后介紹鼠標操作圖形縮放等功能的實現(xiàn)。
1. Qt Charts 模塊
Qt Charts 模塊是一組易于使用的圖表組件,它基于 Qt 的 Graphics View 架構,其核心組件是QChartView和QChart。
QChartView 的父類是QGraphicsView,就是 Graphics View 架構中的視圖組件,所以,QChartView 是用于顯示圖表的視圖。
QChart 的繼承關系如圖9-1 所示,可以看到,QChart 是從QGraphicsItem 繼承而來的,所以QChart 是一種圖形項。
QPolarChart 是用于繪制極坐標圖的圖表類,它從QChart 繼承而來。
要在項目中使用 Qt Charts 模塊,必須在項目的配置文件 (.pro 文件)中增加下面的一行語句:Qt+= charts
在需要使用 QtCharts 的類的頭文件或源程序文件中,要使用如下的包含語句:
#include <QtCharts>
using namespace QtCharts;
也可以使用宏定義:
#include <QtCharts>
Qt_CHARTS_USE_NAMESPACE
對應章節(jié)介紹了一個實現(xiàn)如下圖所示的實例實現(xiàn)方法。
2. 圖表的主要組成部分
觀察createChart()函數(shù)的內容和程序運行后的界面(圖9-2)可知 QChartView 是 QChart 的視圖組件,而一個QChart 一般包括序列、坐標軸、圖例、圖表標題等部分。
2.1 QChartView的功能
QChartView 是QChart 的視圖組件,類似于 Graphics View 架構中的 QGraphicsView。實際上,在窗口設計界面上使用 QChartView 時,就是先放置一個 QGraphicsView 組件,然后升級為QChartView。
2.2 序列
序列是數(shù)據(jù)的表現(xiàn)形式,如圖9-2 中的兩條曲線就是兩個QLineSeries 類型的序列。
圖表的類型主要就是由序列的類型決定的,常見的圖表類型有折線圖、柱狀圖、餅圖、散點圖等,Qt Charts 能實現(xiàn)的常見圖表示例及用到的序列類見對應位置。
2.3 坐標軸
一般的圖表都有橫軸和縱軸兩個坐標軸,如折線圖一般表示數(shù)據(jù),坐標軸用 QValueAxis 類的數(shù)值坐標軸,如果用對數(shù)坐標,就可以使用 QLogValueAxis 類的坐標軸;柱狀圖的橫坐標通常是文字,可以用QBarCategoryAxis 作為橫軸,而餅圖一般沒有坐標軸。
2.4 圖例
圖例 (Legend) 是對圖表上顯示的序列的示例說明,如圖 9-2 中為兩條曲線顯示的圖例,有線條顏色和文字說明。QLegend 是封裝了圖例控制功能的類,可以為每個序列設置圖例中的文字,可以控制圖例顯示在圖表的上、下、左、右不同位置。
對于圖例還有一個類QLegendMarker,可以為每個序列的圖例生成一個類似于QCheckBox 的組件,在圖例上單擊序列的標記,可以控制序列是否顯示。文章來源:http://www.zghlxwxcb.cn/news/detail-643733.html
3. QChart實現(xiàn)多種功能
QChart繪制折線圖、柱狀圖、餅圖、堆疊柱狀圖、百分比柱狀圖、散點圖、光滑曲線圖等的實現(xiàn)方法見對應位置介紹。文章來源地址http://www.zghlxwxcb.cn/news/detail-643733.html
到了這里,關于09-1_Qt 5.9 C++開發(fā)指南_Qchart概述的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!