Qt Charts
Charts
Qt Charts概述
Qt Charts模块
Qt Charts模块是一组易于使用的图表组件
基于Qt的Graphics View架构
其核心组件是QChartView和QChartQChartView的父类是QGraphicsView,即为Graphics View架构中的视图组件QChartView是用于显示图表的视图
层次:QGraphicsItem-->QGraphicsObject-->QGraphicsWidget-->QChart-->QPolarChart
要在项目中使用Qt Charts模块,需在项目配置文件中增加:Qt += charts
在需要使用QtCharts的类的头文件或源程序文件中,使用如下
#include <QtCharts>
using namespace QtCharts;/Qt_CHARTS_USE_NAMESPACE
一个简单的QChart绘图程序
对QWidget支持void setCentralWidget(...)// 关联子窗口,子窗口居中
对QChartView:
new QChartView(...)// 绑定窗口
void setChart(...)// 和QChart关联
对QChart:
new QChart()//
void setTitle(...)
void addSeries(...)// 轨迹集合
void setAxisX(...)//
void setAxisY(...)//
对QLineSeries:
new QLineSeries()
void setName(...)
void append(...)// 二维数据点
对QValueAxis:
new QValueAxis()
void setRange(...)// 设置坐标轴范围
void setTitleText(...)
图表的主要组成部分
QChartView是QChart的视图组件
而一个QChart一般包括序列,坐标轴,图例,图表标题等部分
QChartView的功能
QChartView是QChart的视图组件QChartView类定义的函数较少
void setChart(QChart* chart)
QChart* chart()
void setRubberBand(RubberBands& rubberBand)
设置选择框类型
即鼠标在视图组件上拖动选择范围的方式,是一个QChartView::RubberBand枚举类型的组合QChartView::RubberBand枚举类型有以下几种取值:
1.QChartView::NoRubberBand
2.QChartView::VerticalRubberBand
3.QChartView::HorizontalRubberBand
4.QChartView::RectangleRubberBand
- 如:RubberBands rubberBand()
返回设置的选择框类型
序列
序列是数据的表现形式
图表的类型主要是由序列的类型决定的
常见的图表类型有折线图,柱状图,饼图,散点图等QAbstractSeries派生出了QAreaSeries,QBoxPlotSeries,QAbstractBarSeries,QPieSeries,QXYSeries
QAbstractBarSeries派生出了QBarSeries,QHorizontalBarSeries,QHorizontalPercentBarSeries,QHorizontalStackedBarSeries,QPercentBarSeries,QStackedBarSeries
QXYSeries派生出了QLineSeries,QScatterSeriesQLineSeries派生出了QSplineSeries
坐标轴
一般的图表都有横轴和纵轴两个坐标轴
坐标轴用QValueAxis类的数值坐标轴
如用对数坐标,用QLogValueAxis
柱状图的横坐标通常是文字,可用QBarCategory作为横轴
饼图一般没坐标轴
QValueAxis 数值坐标轴
QCategoryAxis 分组数值坐标轴
QLogValueAxis 对数数值坐标轴
QBarCategoryAxis 类别坐标轴
QDateTimeAxis 日期时间坐标轴
QAbstractAxis派生了QValueAxis, QLogValueAxis, QBarCategoryAxis, QDateTimeAxisQValueAxis派生了QCategoryAxis
坐标轴类封装了坐标轴的刻度,标签,网格线,标题等
图例
图例是对图表上显示的序列的示例说明QLegend是封装了图例控制功能的类,可为每个序列设置图例中的文字
可控制图例显示在图表的上下左右不同位置
对图例还有一个类QLegendMarker,可为每个序列的图例生成一个类似与QCheckBox的组件
QChart绘制折线图
实例功能
图表的标题,图例,边距等属性设置QLineSeries序列的属性设置QValueAxis坐标轴的属性设置
图表的缩放
- 工具栏
- 主工作区图表视图
- 图表属性设置面板
主窗口类定义和初始化
#include <QtCharts>
Qt_CHARTS_USE_NAMESPACE
QLineSeries:
new QLineSeries()
void setName(...)
void setPen(...)
void clear()
void append(...)
QPen:
void setStyle(...)
void setWidth(...)
void setColor(...)
QValueAxis:
void setRange(...)
void setLabelFormat(...)
void setTickCount(...)
void setMinorTickCount(...)
void setTitleText(...)
QChart:
new QChart()
void setTitle(...)
void addSeries(...)
void setAxisX(...)
void setAxisY(...)
? series()
QString title()
QMargins margins()
QChartView:
void setChart(...)
void setRenderHint(...)
QChart* chart()
qsrand(...)
qreal:
qrand()
qSin(...)
qCos(...)
画笔设置对话框QWDialogPen
如QWDialogPen,QPen支持? style()
QChart的设置
QChart是组合图表各部件,显示各种数据序列的绘图组件QChart接口众多QChart类的主要函数
图表外观:
void setTitle(...)
void setTitleFont(...)
void setTitleBrush(...)
void setTheme(...)
void setMargins(...)
QLegend* legend()
void setAnimationOptions()
数据序列:
void addSeries(...)
QList<QAbstractSeries*> series(...)
void removeSeries(...)
void removeAllSeries(...)
坐标轴:
void addAxis(...)
QList<QAbstractAxis*> axes()
void setAxisX(...)
void setAxisY(...)
void removeAxis(...)
void createDefaultAxes(...)
QLineSeries序列的设置
QLineSeries类的主要函数
序列名称:void setName(...)
图表:QChart* chart()
序列外观:
void setVisible()
void show()
void hide()
void setColor(...)
void setPen(...)
void setBrush(...)
void setOpacity(...)
数据点:
void setPointsVisible(...)
void append(...)
void insert(...)
void replace(...)
void clear()
void remove(...)
void removePoints(...)
int count()
QPointF& at()
QList<QPointF> points()
QVector<QPointF> pointsVector()
数据点标签:
void setPointLabelsVisible()
void setPointLabelsColor(...)
void setPointLabelsFont(...)
void setPointLabelsFormat(...)
void setPointLabelsClipping(...)
坐标轴:
bool attachAxis(...)
bool detachAxis(...)
QList<QAbstractAxis*> attachedAxes()
对QLineSeries:
bool isVisible()
bool pointsVisible()
int opacity()
bool pointLabelsVisible()
void setPointLabelsFormat(...)
QLineSeries& operator<<(...)
void append(...)
void attachAxis(...)
对QChart支持void addAxis(...)
QValueAxis坐标轴设置
QValueAxis类的主要函数
坐标轴整体:
void setVisible(...)
Qt::Orientation orientation(...)
void setMin(...)
void setMax(...)
void setRange(...)
轴标题 :
void setTitleVisible(...)
void setTitleText(...)
void setTitleFont(...)
void setTitleBrush(...)
轴标签:
void setLabelFormat(...)
void setLabelsAngle(...)
void setLabelsBrush(...)
void setLabelsColor(...)
void setLabelsFont(...)
void setLabelsVisible(...)
轴线和刻度线:
void setTickCount(...)
void setLineVisible(...)
void setLinePen(...)
void setLinePenColor(...)
主网格线:
void setGridLineColor(...)
void setGridLinePen(...)
void setGridLineVisible(...)
次刻度和次网格线:
void setMinorTickCount(...)
void setMinorGridLineColor(...)
void setMinorGridLinePen(...)
void setMinorGridLineVisible(...)
- 坐标轴标题
- 轴线和刻度线
- 轴标签
- 主网格线
- 次网格线QChart:
QValueAxis* axisX()
QValueAxis* axisY()
对QValueAxis:
int min()
int max()
QString titleText()
bool isTitleVisible()
QString labelFormat()
bool labelsVisible()
bool isGridLineVisibel()
bool isLineVisible()
int tickCount()
int minorTickCount()
bool isMinorGridLineVisible()
void setLabelFormat(...)
各种常见图表的绘制
实例功能概述
除了折线图,Qt Charts还提供柱状图,饼图,百分比柱状图等常见图表
数据准备
对QStringList支持QString& operator<<(...)
对QTableView支持void setModel(...)
对QStandardItemModel:
new QStandardItemModel(...)
void setHorizontalHeaderLabels(...)
int rowCount()
void setItem(...)
signal:
itemChanged()
对QStandardItem:
new QStandardItem(...)
void setTextAlignment(...)
void setFlags(...)
int column(...)
int row()
QString text()
对QString:
QString asprintf(...)
double ToDouble()
qsrand(...)
qrand()
柱状图
柱状图的绘制
对QChart:
void setTitle(...)
void setAnimationOptions(...)
void removeAllSeries()
void removeAxis(...)
void addSeries(...)
对QBarSet:
new QBarSet(...)
void append(...)
对QBarSeries:
new QBarSeries(...)
void append(...)
对QBarCategory,QLineSeries:
new QLineSeries(...)
void setName(...)
void setPen(...)
void append(...)
对QStandardItemModel:
QStandardItem* horizontalHeaderItem(...)
int rowCount()
对QStandardItem支持QString text()
对QString支持int toInt()
对QPen支持void setColor(...),void setWidth(...)
对QChartView支持void setChart(...),void setRenderHint(...)
柱状图相关的主要类
- 如QBarSet
创建柱状图的数据集
- 如QBarSeries
柱状图序列
一个序列一般包含多个QBarSet
- 如QBarCategoryAxis
柱状图分类坐标,以文字标签形式表示
QBarSet类的主要函数功能
标签:
void setLabel(...) 设置数据集的标签,
void setLabelBrush(...) 设置标签的画刷
void setLabelColor(...) 设置标签的文字颜色
void setLabelFont(...) 设置标签的字体
数据棒:
void setBorderColor(...) 设置数据集的棒图边框颜色
void setBrush(...) 设置数据集棒图画刷
void setColor(...) 设置数据集棒图填充色
void setPen(...) 设置数据集棒图边框画笔
数据点:
void append(...) 添加一个数据到数据集
void insert(...) 从某位置插入一个数据到数据集
void remove(...) 从某位置开始删除一定数量的数据
void replace(...) 替换某个位置的数据
qreal at()
int count()
qreal sum()
QBarSeries从QAbstractBarSeries类继承而来QBarSeries类主要实现对QBarSet的操作QBarSeries类的主要函数功能
外观:
void setBarWidth(...) 设置数据棒宽
void setLabelsVisible(...) 设置数据棒标签可见性
void setLabelsFormat(...) 设置数据棒标签格式
void setLabelsPosition(...) 数据棒标签位置
void setLabelsAngle(...)
数据集:
bool append(...) 添加一个QBarSet数据集序列
bool insert(...)
bool remove(...)
bool take(...)
void clear()
QList<QBarSet*> barSets() 返回数据集对象的列表
int count()
QBarCategoryAxis主要函数功能
坐标内容:
void append(...)
void insert(...)
void replace(...)
void remove(...)
void clear()
QString at(...)
int count()
void setCategories()
坐标范围:
void setMin(...)
void setMax(...)
void setRange(...)
饼图
饼图的绘制
对QChartView:
QChart* chart()
void removeAllSeries(...)
对QPieSeries:
new QPieSeries(...)
void setHoleSize(...)
void append(...)
QList<QPieSlice*> slices()
void setLabelsVisible(...)
对QTreeWidgetItem,QTreeWidget:
QTreeWidgetItem* topLevelItem(...)
对QPieSlice:
void setLabel(...)
int percentage()
void setExploded(...)
对QChart:
void addSeries(...)
void setTitle(...)
饼图相关的主要类
- 如QPieSeries
饼图序列
- 如QPieSlice
一个饼图的分块
QPieSeries类的主要函数功能
分块操作:
bool append(...)
bool insert(...)
bool remove(...)
bool take(...)
void clear()
QList<QPieSlice*> slices()
int count()
bool isEmpty()
qreal sum()
外观:
void setHoleSize(...)
void setPieSize(...)
void setLabelsVisible(...)
QPieSlice类的主要函数功能
数据:
QPieSeries* series()
void setValue(...)
qreal percentage()
标签:
void setLabelVisible(...)
void setLabel(...)
void setLabelBrush(...)
void setLabelColor(...)
void setLabelFont(...)
void setLabelPosition(...)
外观 :
void setExploded(...)
void setPen(...)
void setBorderColor(...)
void setBorderWidth(...)
void setBrush(...)
void setColor(...)
堆叠柱状图
对QChartView支持QChart* chart()
对QChart:
void removeAllSeries()
void removeAxis(...)
对QBarSet支持new QBarSet(...)
更多推荐



所有评论(0)