09-1_Qt 5.9 C++开发指南_Qchart概述

2023-11-15

Qt Charts 可以很方便地绘制常见的折线图、柱状图、饼图等图表,不用自己耗费时间和精力开发绘图组件或使用第三方组件了。

本章首先介绍 Qt Charts 的基本特点和功能,以画折线图为例详细说明 Qt Charts 各主要部件的操作方法,再介绍各种常用图表的绘图方法,最后介绍鼠标操作图形缩放等功能的实现。

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

对应章节介绍了一个实现如下图所示的实例实现方法。

在这里插入图片描述

2. 图表的主要组成部分

观察createChart()函数的内容和程序运行后的界面(图9-2)可知 QChartView 是 QChart 的视图组件,而一个QChart 一般包括序列、坐标轴、图例、图表标题等部分。

2.1 QChartView的功能

QChartView 是QChart 的视图组件,类似于 Graphics View 架构中的 QGraphicsView。实际上,在窗口设计界面上使用 QChartView 时,就是先放置一个 QGraphicsView 组件,然后升级为QChartView。

2.2 序列

序列是数据的表现形式,如图9-2 中的两条曲线就是两个QLineSeries 类型的序列。

图表的类型主要就是由序列的类型决定的,常见的图表类型有折线图、柱状图、饼图、散点图等,Qt Charts 能实现的常见图表示例及用到的序列类见对应位置。

2.3 坐标轴

一般的图表都有横轴和纵轴两个坐标轴,如折线图一般表示数据,坐标轴用 QValueAxis 类的数值坐标轴,如果用对数坐标,就可以使用 QLogValueAxis 类的坐标轴;柱状图的横坐标通常是文字,可以用QBarCategoryAxis 作为横轴,而饼图一般没有坐标轴。

在这里插入图片描述

2.4 图例

图例 (Legend) 是对图表上显示的序列的示例说明,如图 9-2 中为两条曲线显示的图例,有线条颜色和文字说明。QLegend 是封装了图例控制功能的类,可以为每个序列设置图例中的文字,可以控制图例显示在图表的上、下、左、右不同位置。
对于图例还有一个类QLegendMarker,可以为每个序列的图例生成一个类似于QCheckBox 的组件,在图例上单击序列的标记,可以控制序列是否显示。

3. QChart实现多种功能

QChart绘制折线图、柱状图、饼图、堆叠柱状图、百分比柱状图、散点图、光滑曲线图等的实现方法见对应位置介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

09-1_Qt 5.9 C++开发指南_Qchart概述 的相关文章

随机推荐

  • mysql sql语句太长_MySQL SQL语句过长引起的问题

    我现在做数据统计 后台数据库用的是MySQL 有一个常用的需求 查询未订购用户的访问PV 用户唯一性标识是用户手机号 第一种写法 SELECT COUNT 1 FROM day resinlog 2012 06 12 WHERE mobil
  • 【数据结构】线性结构—循环队列及其基本操作

    通过顺序表存储队列 当入队时队尾指针 1 出队时队头指针也 1 通过取余运算使队头指针和队尾指针在顺序表的表头和表尾移动以实现循环 当队为空队时候 队头指针和队尾指针都指向同一个位置 当队非空的时候队尾指针指向队尾元素的下一位 那么若队满的
  • sql语句查询重复的数据

    查找所有重复标题的记录 SELECT FROM t info a WHERE SELECT COUNT FROM t info WHERE Title a Title gt 1 ORDER BY Title DESC 一 查找重复记录 1
  • PMBOK(第六版) PMP笔记——《第十章 项目沟通管理》

    第十章 项目沟通管理 PM 大多数时间都用在与干系人的沟通上 第十章有三个过程 规划沟通管理 根据干系人的需求 制定沟通管理计划 管理沟通 根据沟通管理计划发布 收集 处理信息 监督沟通 确保在正确时间将正确信息传递给正确的人 1 10 1
  • 花生壳内网穿透+Windows系统,如何搭建网站?

    1 准备工作 在百度搜索 Win7下安装Apache PHP MySQL 根据搜到的教程自行安装WAMP环境 如果在网页上键入http 127 0 0 1 nbsp 出现以下页面表示您的服务器已经建好 下一步就是关键 如何通过花生壳内网穿透
  • 大家平时天天说的分布式系统到底是什么东西

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 从单块系统说起 团队越来越大 业务越来越复杂 分布式出现 庞大系统分而治之 分布式系统所带来的技术问题 一句话总结 什么是分布式系统设计和开发经验 补充说明 中
  • 【死磕 NIO】— ServerSocketChannel 的应用实例

    大家好 我是大明哥 一个专注于 死磕 Java 的程序员 死磕 Java 系列为作者 chenssy 倾情打造的 Java 系列文章 深入分析 Java 相关技术核心原理及源码 死磕 Java https www cmsblogs com
  • java大数据开发训练营--Java Web 后端技术基础(下)之Spring IOC控制反转

    一 Spring概述 1 1 Spring是什么 Spring是分层的 Java SE EE应用 full stack 全栈式 轻量级开源框架 提供了表现层 SpringMVC和持久层 Spring JDBC Template以及 业务层
  • 目标检测 3—— 人脸检测

    笔记来源 DeepLearning 500 questions 上次学习了目标检测的基本概念 Two Stage和 One Stage 算法 1 目标检测Two Stage 2 目标检测One Stage 4 人脸检测 在目标检测领域可以划
  • rk3368 Android9.0 HIDL调试记录

    rk3368 Android9 0 HIDL调试记录 Platform RK3368 OS Android 9 0 Kernel 4 4 194 文章目录 rk3368 Android9 0 HIDL调试记录 1 使用hidl gen工具生
  • AD使用插件生成交互式BOM

    AD使用插件生成交互式BOM 1 下载AD用交互式BOM插件 首先前往GitHub下载这位大佬开发的插件 地址 https github com lianlian33 InteractiveHtmlBomForAD 下载完成后打开文件所在位
  • 请实现一个简单的网页计算器(vue)

    练习一下父组件向子组件传值 计算部分用eval方法实现 运行截图如下 话不多说 上代码 页面结构 div div
  • JAVA08_Stream流anyMatch和allMatch和noneMatch的区别

    allMatch全匹配 判断数据列表中全部元素都符合设置的predicate条件 如果是就返回true 否则返回false 流为空时总是返回true 接口定义 boolean allMatch Predicate
  • 【华为】Redis客户端API使用(java)

    1 概述 目标读者 本文档专供需要Redis客户端API调用的开发人员 适用于具备Java开发经验的开发人员 简介 Redis客户端通过API调用 向Redis发起命令调用 向Redis或写入或读出数据 基本概念 Redis服务端 提供服务
  • 计算机cpi的公式,EAC=BAC/CPI;EAC=AC+( BAC-EV)/CPI公式分别在什么情况下使用?

    EAC BAC CPI EAC AC BAC EV CPI公式分别在什么情况下使用 来源 信管网 2018年10月30日 所有评论 横渡大漠 cnitpm com 08 21 35 帮忙解释一下 什么情况下用EAC BAC CPI 算 什么
  • 木兰开源社区分论坛

    ChinaOSC 2022 木兰开源社区 技术论坛将于 2022年8月21日15 00 17 30 在陕西省西安高新国际会议中心 会议室 召开 聚焦开源许可证与标准 探索开源发展模式 为国内开源产业打地基 木兰开源社区做了什么 还要怎么做
  • 黑客攻防入门(二)shellcode构造

    1 概说 shell我们都知道是什么了吧 狭义的shellcode 就是一段可以运行shell的代码 构造一段shellcode的作用就是为了在缓冲区溢出时将shellcode的地址覆盖掉正常的返回地址 shellcode通常放在缓冲区内
  • 视觉工程师手写文档之优秀程序员指南篇

    首先 这是我从第一次开始走出校园就一直在完善的一些指南 本来是给自己看的 但现在离职期间再翻看到之后 感触良多 就做了分享 里面很多内容是我在CSDN技术博客上看到的 我认为写的很好的 有些是我自己的总结 大家看看就好
  • Android 中简单计时器的实现方法(Handler和TimerTask)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 方法一 用handler线程创建计时器 计时器效果如下 第一步 写xml文件
  • 09-1_Qt 5.9 C++开发指南_Qchart概述

    Qt Charts 可以很方便地绘制常见的折线图 柱状图 饼图等图表 不用自己耗费时间和精力开发绘图组件或使用第三方组件了 本章首先介绍 Qt Charts 的基本特点和功能 以画折线图为例详细说明 Qt Charts 各主要部件的操作方法