qchart折现图_Qt折线图最简实现

本文通过示例详细介绍了如何使用Qt Charts模块创建和显示一个简单的折线图,包括添加charts模块、创建QLineSeries、设置数据、创建QChart、QChartView以及开启OpenGL和抗锯齿等关键步骤。
摘要由CSDN通过智能技术生成

本文将演示如何用Qt Charts快速实现一个最简单的折线图显示。

如果您想直接运行体验效果,可以直接点击这里下载源码编译:

0x00 最终效果

​ 本文最后将会实现如下效果:

0x01 添加charts模块

​ Qt Charts作为一个独立的模块,在使用前需要在项目的pro文件中添加:

QtExample.pro:

# 添加Qt charts模块

QT += charts

0x02 包含charts头文件并引用QT charts命名空间

main.cpp:

// 包含line chart需要的头文件

#include

#include

// 引用命名空间

QT_CHARTS_USE_NAMESPACE

int main(){

...

}

0x03 创建QLineSeries并添加数据

​ 折线图的实现需要创建一个QLineSeries对象用于保存和绘制折线数据:

main.cpp:

// new 一个 QLineSeries实例

QLineSeries *series = new QLineSeries();

// 添加实验数据,可以用 append 方法或者 >> 操作符

series->append(0,2);

series->append(QPointF(2,6));

series->append(3,8);

series->append(7,9);

series->append(11,3);

*series << QPointF(11,2) << QPointF(15,5) << QPointF(18,4) << QPointF(19,2);

0x04 创建QChart用于显示数据

​ 创建好series后,需要创建一个QChart实例并关联series,创建坐标才能将数据显示出来:

main.cpp:

QChart *chart = new QChart();

// 将图例隐藏

chart->legend()->hide();

// 关联series,这一步很重要,必须要将series关联到QChart才能将数据渲染出来:

chart->addSeries(series);

// 开启OpenGL,QLineSeries支持GPU绘制,Qt其他有的图表类型是不支持的。

series->setUseOpenGL(true);

// 创建默认的坐标系(笛卡尔坐标)

chart->createDefaultAxes();

// 设置图表标题

chart->setTitle(QStringLiteral("Qt line chart example"));

0x05 创建QChartView对象并显示图表

​ 这里创建QChartView对象是为了将最终结果显示到界面,如果不想用QChartView,也可以选择QGraphicsView scene来显示。

main.cpp:

QChartView *view = new QChartView(chart);

// 开启抗锯齿,让显示效果更好

view->setRenderHint(QPainter::Antialiasing);

view->resize(400,300);

// 显示图表

view->show();

0x06 完整源码

QtExamples.cpp:

QT += charts

SOURCES += \

main.cpp

main.cpp:

// 包含头文件

#include

#include

#include

// 引用命名空间

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

QLineSeries *series = new QLineSeries();

series->append(0,2);

series->append(QPointF(2,6));

series->append(3,8);

series->append(7,9);

series->append(11,3);

*series << QPointF(11,2) << QPointF(15,5) << QPointF(18,4) << QPointF(19,2);

QChart *chart = new QChart();

// 将图例隐藏

chart->legend()->hide();

// 关联series,这一步很重要,必须要将series关联到QChart才能将数据渲染出来:

chart->addSeries(series);

// 开启OpenGL,QLineSeries支持GPU绘制,Qt其他有的图表类型是不支持的。

series->setUseOpenGL(true);

// 创建默认的坐标系(笛卡尔坐标)

chart->createDefaultAxes();

// 设置图表标题

chart->setTitle(QStringLiteral("Qt line chart example"));

QChartView *view = new QChartView(chart);

// 开启抗锯齿,让显示效果更好

view->setRenderHint(QPainter::Antialiasing);

view->resize(400,300);

// 显示图表

view->show();

return a.exec();

}

0x07 参考

Qt LineChart Example,或者直接在Qt Creator搜索linechart:

0x08 The end :)

文章首发自公众号:: nullobject 。

个人站点:https://www.nullobject.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值