Qt Charts入门指南

Qt6导入QtChart绘制图表(添加组件) 我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。 阅读详情

简述

Qt Charts 的横空出世标识着 QWT、QCustomPlot …… 时代的终结,是时候向他们做一个简单的告别了。Qt Charts - 强大并极具吸引力,从现在开始,让我们顺势拥抱灿烂的明天 。

安装配置

Qt5.7 中已经集成了 Qt Charts 模块,关于 Qt 的安装配置,请参考:

安装过程中,新添加的一些模块(例如:Qt Charts)默认不被安装,可以根据需要自行勾选:

这里写图片描述

注意:由于后期需要使用 Qt Charts,请勾选上此模块,否则无法使用。

基本示例

Qt 为 Qt Charts 提供了一系列示例,这是快速学习和掌握 Qt Charts 的方式之一。

打开 Creator,选择:【欢迎】->【示例】,输入“charts”相关的关键字:

这里写图片描述

选择其中一个示例运行,效果如下:

这里写图片描述

效果棒棒哒,美观、简单、直观,而且还支持动画 。。。

入门指南

如果要导入 Qt Charts QML 类型,需要在 .qml 文件中添加下面的导入语句:

import QtCharts 2.0

要在应用程序中使用 Qt Charts C++ 类,使用下面的 include 和 using 语句:

#include <QtCharts>

using namespace QtCharts;

这里有更简单的宏定义来代替命名空间的使用:

QT_CHARTS_USE_NAMESPACE

找到定义,可以看到其实是一个道理:

#define QT_CHARTS_NAMESPACE QtCharts

#ifdef QT_CHARTS_NAMESPACE
#  define QT_CHARTS_BEGIN_NAMESPACE namespace QT_CHARTS_NAMESPACE {
#  define QT_CHARTS_END_NAMESPACE }
#  define QT_CHARTS_USE_NAMESPACE using namespace QT_CHARTS_NAMESPACE;
#else
#  define QT_CHARTS_BEGIN_NAMESPACE
#  define QT_CHARTS_END_NAMESPACE
#  define QT_CHARTS_USE_NAMESPACE
#endif

注意:从 Qt Creator 3.0 以后,使用 Qt Quick Application 向导创建的项目,基于 Qt Quick 2 模板,默认使用 QGuiApplication。项目中所有此类 QGuiApplication 实例必须更换为 QApplication,模块依赖于 Graphics View 框架的渲染。

要链接到 Qt Charts 模块,需要在 qmake 项目文件中添加:

QT += charts

基本用法

要构建图表,可以通过以下两种方式:

  • QChartView + QChart
    QChartView 作为一个独立的图表窗口,用于显示 QChart,不需要与 QGraphicsScene 一起使用。

  • QGraphicsScene + QChart
    在现有的 QGraphicsScene 中显示 QChart(或 QPolarChart)。

QChartView + QChart

这里写图片描述

这种方式将 QChartView 作为一个独立的窗口,通过构造函数或者调用 setChart() 就可以为设置 QChart 作为显示的图表,这对于一个图表的单独显示来说非常简单。

#include <QApplication>
#include <QChartView>
#include <QLineSeries>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 构建 series,作为图表的数据源,为其添加 6 个坐标点
    QLineSeries *series = new QLineSeries();
    series->append(0, 5);
    series->append(4, 10);
    series->append(8, 6);
    *series << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2);

    // 构建图表
    QChart *chart = new QChart();
    chart->legend()->hide();  // 隐藏图例
    chart->addSeries(series);  // 将 series 添加至图表中
    chart->createDefaultAxes();  // 基于已添加到图表的 series 来创轴
    chart->setTitle("Simple line chart");  // 设置图表的标题 

    // 构建 QChartView,并设置抗锯齿、标题、大小
    QChartView *chartView = new QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);
    chartView->setWindowTitle("Simple line chart");
    chartView->resize(400, 300);
    chartView->show();

    return a.exec();
}

QGraphicsScene + QChart

这里写图片描述

这种方式不需要使用 QChartView,图表窗口用 QGraphicsView 来代替,在 QGraphicsScene 中显示 QChart(或 QPolarChart)。

#include <QApplication>
#include <QChartView>
#include <QLineSeries>
#include <QPieSeries>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 图形视图
    QGraphicsScene scene;
    QGraphicsView view(&scene);
    view.setWindowTitle("Simple chart");
    view.setRenderHint(QPainter::Antialiasing);
    scene.setBackgroundBrush(QBrush(QColor(240, 240, 240)));
    view.setSceneRect(0, 0, 630, 280);

    // 折线图
    // 构建 series,作为折线图的数据源,为其添加 6 个坐标点
    QLineSeries *lineseries = new QLineSeries();
    lineseries->append(0, 5);
    lineseries->append(4, 10);
    lineseries->append(8, 6);
    *lineseries << QPointF(13, 5) << QPointF(17, 6) << QPointF(20, 2);

    QChart *lineChart = new QChart();
    lineChart->legend()->hide();  // 隐藏图例
    lineChart->addSeries(lineseries);  // 将 series 添加至图表中
    lineChart->createDefaultAxes();  // 基于已添加到图表的 series 来创建轴
    lineChart->setTitle("Simple line chart");
    lineChart->setGeometry(10, 10, 300, 260);

    // 饼图
    // 构建 series,作为饼图的数据源,为其添加 4 个切片
    QPieSeries *pieSeries = new QPieSeries();
    pieSeries->append("Java", 40);
    pieSeries->append("C#", 30);
    pieSeries->append("JS", 15);
    QPieSlice *pieSlice = new QPieSlice("Others", 15);
    pieSeries->append(pieSlice);

    QChart *pieChart = new QChart();
    pieChart->addSeries(pieSeries);  // 将 series 添加至图表中
    pieChart->legend()->setAlignment(Qt::AlignRight);  // 设置图例靠右显示
    pieChart->setTitle("Simple pie chart");
    pieChart->setGeometry(320, 10, 300, 260);

    // 将折线图、饼图添加至视图中
    scene.addItem(lineChart);
    scene.addItem(pieChart);
    view.show();

    return a.exec();
}

基本的使用到这里就结束了,其它的一些图表在后面章节再进行分享。

版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣、好玩、靠谱。。。作者:一去丶二三里 博客地址:http://blog.youkuaiyun.com/liang19890820 //blog.youkuaiyun.com/u011012932/article/details/52210175




Qt Charts 动态实时折线图绘制 在Qt Charts发布之前, Qt比较著名两个画图插件是 qwt和Qcustom, 其中Qcustom较轻量,只需要在project 中包含qcustomplot.h 和 qcustomplot.cpp 几乎就可以使用。 相比Qcustom,qwt功能更为强大,但是它的安装十分麻烦,阻挡了很多人(包括我)的使用。 但是qwt只是对静态图表的表示非常不错,动态曲线性能并不突出。如果只是 阅读详情

相关推荐

【嵌入式——QT】QT Charts

嵌入式-QT-QT Charts

weixin_39723539的博客 2673

Qt图形图像开发之曲线图表库QChart编译安装详细方法与使用实例

Qt曲线图表库Qt Chart简介 Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart。长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新。下面将介绍如何安装QtChart并进行简单的绘图。 Qt曲线图表库Qt Chart下载 这里用git下载QtChart,参考Qt Charts 5.7.0 安装教程 Git地址:https://github.com/qtproject/qtcharts.git git clone https

Qt 绘制图表 - Qt Charts版

自从 Qt 发布以来,给广大跨平台界面研发人员带来了无数的福利。但是Qt自己却一直没有提供自带的图表库,这就使得 QWT、QCustomPlot 等第三方图表库有了巨大的生存空间,为了降低开发成本,大家都涌向了这些第三方库。这种情况一直持续到 Qt5.7 版本后 Qt Charts 的发布。Qt Charts 是 Qt 自带的组件库,包含折线、曲线、饼图、棒图、散点图、雷达图等等各种常用的图表。只是要注意协议的约束:GPLV3。 我们今天使用 QChartView 来做折线图。QChartView 派生自

QtCompany的博客 3061

QT安装QChart

下载网址:GitHub - qt/qtcharts: QtCharts moduleQtCharts module. Contribute to qt/qtcharts development by creating an account on GitHub.https://github.com/qt/qtcharts选择对应QT版本的QChart 注意进入网址后选择对应的版本后下载,不要直接下载,直接下载的根目录下没有.pro文件使用安装的QT对应的qmake生成Makefile执行make或者sudo

山川大海的博客 7287

QT Creator安装后找不到Charts组件?手把手教你用MaintenanceTool添加Qt Charts模块

本文详细介绍了在QT Creator中找不到Charts组件的解决方案,通过MaintenanceTool工具添加Qt Charts模块。文章从问题诊断、工具准备、镜像源配置到组件安装和验证,提供了完整的步骤指南,帮助开发者快速解决`Project ERROR: Unknown module(s) in QT: charts`问题,并实现数据可视化功能。

weixin_30700977的博客 527

Qt6 for C++的Qt Charts

Qt Charts 是 Qt 提供的一个用于数据可视化的模块,支持多种图表类型,如折线图、柱状图、饼图等。其主要特点包括多种图表类型、交互功能、主题和样式定制、高性能渲染以及跨平台支持。核心组件包括 QChart、QAbstractSeries、QValueAxis、QLegend 和 QChartView。使用流程通常包括创建图表、添加数据系列、设置坐标轴并显示在视图中。示例代码展示了如何创建简单的折线图。注意事项包括模块引入、命名空间使用和内存管理。

weixin_43484713的博客 1550

视频教程-QT Charts入门指南视频精讲-C/C++

QT Charts入门指南视频精讲 拥有18年C++跨平台软件研发及大型项目...

weixin_31612813的博客 735

在QT中使用QtChart

在上面的示例中,我们首先创建了柱状图的数据集,然后创建了柱状图系列,并将数据集添加到系列中。接下来,我们创建了一个图表,并将系列添加到图表中。通过以上步骤,您就可以在QT中使用QtChart模块创建各种类型的图表。QtChart是Qt框架中的一个模块,它提供了用于创建各种图表的类和函数。本文将介绍如何在QT中使用QtChart模块来创建图表,并附带相应的源代码示例。一旦安装了QtChart模块,您就可以开始在QT中创建图表了。请注意,为了正确使用QtChart模块,我们需要包含一些必要的头文件,并使用。

TechO_O的博客 2510

Qt Charts入门

一、Qt Charts简介 Qt Charts模块提供一组易于使用的图表组件。它使用了Qt的图形视图框架,因此图表可以很容易集成到现代用户界面。Qt 图表可以用作QWidgets,QGraphicsWidget 或者 QML 类型。用户可以通过选择一个图表主题(如柱状图,饼状图,折线图等)轻松地创建令人印象深刻的图表。Qt Charts 模块是在Qt5.7才集成进去的,早些时候的版本不支持这个模块...

華仔的博客 2987

Qt Charts 入门指南

Qt Charts 的横空出世标识着 QWT、QCustomPlot ...... 时代的终结,是时候向他们做一个简单的告别了。Qt Charts - 强大并极具吸引力,从现在开始,让我们顺势拥抱灿烂的明天 。

青春不老,奋斗不止! 5万+

【QT】Qt Charts概述

本文介绍QtCharts模块相关概念,图表的主要组成部分,包括标题,序列,坐标轴图例等,并用一个简单的QChart绘图程序进行演示QtCharts模块的应用。

u011671745的博客 1914

qt qml qchart 图表组件

charts.js 的qml封装,支持各种图表类型:柱形图、饼形图、环形图、折线图、极坐标图、雷达图。自带动画、样式精美,使用方便,代码量小。快抢啊。感觉自己快成王婆了 http://surfsky.cnblogs.com

QtCharts5.7.0源码及编译安装教程

主要是QtCharts5.7.0的源码下载以及编辑安装的教程,支持vs2010、vs2013、windows xp、windows7、Qt5.5及以上等

Qt Charts示例

Qt 5.7 开源了原来商业版中的Qt Charts模块,以后不用再找第三方图标库了。

安晓辉生涯——聚焦程序员的职业规划与成长 1万+

qml--ChartView --显示曲线

该文件实现的功能有: 将C++ 生成的数据, 在QML 中进行曲线显示(ChartView)。

SDIO协议

SDIO协议1 概述  SDIO,全称:Secure Digital Input and Output ,即安全数字输入输出接口。2 特点①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。②与较早的多媒体卡系统规格版本全兼容(向前兼容)。③与SD存储卡规格版本2.0全兼容。④与SD I/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4

Let the development board fly! 3万+
上一篇: mybase7.0激活方法
下一篇: Qt - QDialog,QWidget实现模态及非模态
Maybe______
博客等级 码龄10年 26粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值