QtCharts 组件是QT中提供图表绘制的模块,该模块可以方便的绘制常规图形,Qtcharts 组件基于GraphicsView
模式实现,其核心是QChartView
和QChart
的二次封装版。
在使用绘图模块时需要在pro文件中包含QT += charts
来引入绘图类库。
然后还需在头文件中定义QT_CHARTS_USE_NAMESPACE
宏,这样才可以正常的使用绘图功能。
一般情况下我们会在mainwindows.h
头文件中增加如下代码段。
#include <QMainWindow>
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
// 解决MSVC编译时,界面汉字乱码的问题
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
由于QT中不存在单独的绘图画布,因此在绘图前我们需要在窗体中放入一个graphicsView
组件。
并在该组件上右键将其提升为QChartView
输入需要提升的组件名称,即可将该组件提升为全局绘图组件。
绘制折线图: 折线图的使用非常广泛,如下代码我们首先使用InitChart()
将画布初始化,接着调用SetData()
实现在画布中填充数据,完整代码如下。
#include "mainwindow.h"
#include "ui_mainwindow.h"
// 初始化Chart图表
void MainWindow::InitChart()
{
// 创建图表的各个部件
QChart *chart = new QChart();
chart->setTitle("系统性能统计图");
// 将Chart添加到ChartView
ui->graphicsView->setChart(chart);
// this->setCentralWidget( ui->graphicsView);
ui->graphicsView->setRenderHint(QPainter::Antialiasing);
// 设置图表主题色
ui->graphicsView->chart()->setTheme(QChart::Char