Qt Charts简介
文章目录
- 一.图标类型Charts分类
- 1.折线图和样条曲线图
- 2.面积图和散点图
- 3.条形图
- 4.饼图
- 5.误差棒图
- 6.烛台图
- 7.极坐标图
- 二.坐标轴Axes类型分类
- 三.图例
- 四.图表的互动
- 五.图表样式主题
一.图标类型Charts分类
图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的。
Qt图表模块提供以下图表类型:
- Line and spline charts:折线图和样条曲线图
- Area and scatter charts:面积图和散点图
- Bar charts:条形图或柱状图
- Pie charts:饼图
- Box-and-whiskers charts:误差棒图
- Candlestick charts:烛台图
- Polar charts:极坐标图
1.折线图和样条曲线图
折线图和样条曲线图将数据显示为一系列由直线连接的数据点。在折线图中,数据点由直线连接,而在样条曲线图中,它们由样条曲线连接。样条曲线是使用QPainterPath绘制的。折线图通过使用QLineSeries类实现。样条曲线图是通过使用继承QLineSeries的 QSplineSeries类实现的。
2.面积图和散点图
面积图将数据表示为由两条线限定的区域,而散点图将数据显示为点的集合。
面积图通过使用 QAreaSeries类实现。默认情况下,x轴用作一个边界,QLineSeries用作另一个边界。但是,可以使用 QLineSeries作为两个边界。散点图通过使用 QScatterSeries类实现。
3.条形图
条形图将数据显示为按类别分组的水平或垂直条形图。QBarSet 类表示条形图中的一组条形图。QAbstractBarSeries 类是所有条形系列类的抽象父类,序列类型决定数据的显示方式。QBarSeries 类将数据显示为按类别分组的垂直条。类似地,QHorizontalBarSeries 类将数据显示为水平条。 QStackedBarSeries类将一系列数据显示为垂直堆叠条形图,每个类别一个条形图。相应的水平类和类型为 QHorizontalStackedBarSeries。QPercentBarSeries类以每个类别的百分比表示一系列分类数据。相应的水平类和类型为QHorizontalPercentBarSeries 。
4.饼图
饼图将数据显示为由饼片组成的饼图。饼图使用QPieSeries 类实现,饼图切片使用 QPieSlice 类添加。
5.误差棒图
误差棒以四分位数的形式显示数据,并用胡须表示数值的可变性。方框图系列中的项目按类别分组,类似于条形图系列的条形图集。对于每个长方体和胡须项目,指定了下极值、下四分位数、中值、上四分位数和上极值。通过使用QBoxPlotSeries和QBoxSet类实现长方体和胡须图。
6.烛台图
烛台图表显示了一系列以烛台形式显示的数据。
通过使用QCandlestickSeries 和 QCandlestickSet 类实现烛台图表。
7.极坐标图
极坐标图以圆形图形显示数据,其中数据的放置基于与图形中心极坐标的角度和距离。
QPolarChart类是 QChart类的专门化。它支持直线、样条曲线、面积和散点序列,以及它们支持的所有轴类型。该轴可以用作径向轴或角度轴。
二.坐标轴Axes类型分类
Qt图表支持以下轴类型:
- Value axis:数值坐标轴,将实际值添加到图表的轴。它是使用 QValueAxis类实现的。
- Category axis:分类坐标轴,是使用 QCategoryAxis 类实现的。它具有命名范围和可调整范围宽度。
- Bar category axis:条形图分类轴,与类别轴类似,但所有范围的范围宽度相同。使用 QBarCategoryAxis类实现条类别轴。
- Date-time axis:日期时间坐标轴,将日期和时间添加到图表的轴。它是使用 QDateTimeAxis类实现的。
- Logarithmic value axis:对数值坐标轴,将对数刻度添加到图表的轴上。对数刻度是基于数量级的非线性刻度,因此轴上的每个刻度线都是上一个刻度线乘以一个值。使用 QLogValueAxis类实现对数轴。
可以设置轴以显示带有刻度线、网格线和阴影的线。轴上的值绘制在刻度标记的位置。所有轴类型都是QAbstractAxis类的特殊化。可以为一个图表定义多个轴。轴可以放在图表的下方、上方、左侧或右侧。此外,轴可以是不同类型的。但是,不支持混合会导致不同域的轴类型,例如在同一方向上指定 QValueAxis 和 QLogValueAxis。
三.图例
图例是显示图表图例的图形对象。无法创建或删除图例对象,但可以通过 QChart类引用它们。当序列更改时, QChart会更新图例状态。图例可以位于图表下方或上方,也可以位于图表的左侧或右侧。默认情况下,图例附加到图表视图,但可以分离到单独的图形项目,该项目可以自由移动。可以从图例或整个图例中隐藏单个标记。图例标记可以通过使用QLegendMarker基类和每个系列类型的子类进行修改:QAreaLegendMarker, QBarLegendMarker, QBoxPlotLegendMarker, QCandlestickLegendMarker, 和 QXYLegendMarker.
四.图表的互动
- 与图表交互,最终用户可以通过向图表动态添加值、深入数据、放大和缩小图表、滚动图表、单击图表中的项目或将鼠标悬停在图表上,与图表进行交互。
- 动态图形数据,可以动态地向图表中添加数据,并使图表视图自动滚动以显示新数据。
- 详细数据显示,钻取效果可以实现为条形图或饼图。当用户在图表中选择项目时,将显示该项目的更详细视图。
- 缩放和滚动,用户可以使用键盘缩放和滚动。他们可以使用箭头键滚动图表,使用加号和减号键放大或缩小图表。此外,QRubberBand可用于选择要放大的区域。
- 单击并悬停,可以将插槽连接到终端用户单击图表中的项目或将鼠标悬停在其上时发出的信号。这能够向图表中添加元素,如标注。
五.图表样式主题
Qt图表具有以下预定义主题:
- Light theme, which is the default theme:高亮主题
- Cerulean blue theme:蓝色主题
- Dark theme:深色主题
- Sand brown theme:沙棕色主题
- Natural color system (NCS) blue theme:自然蓝色主题
- High contrast theme:高对比度主题
- Icy blue theme:冰蓝色主题
- Qt theme:Qt类型主题
可以通过更改颜色、笔、画笔和字体来定制主题。可以通过修改Qt图表源代码来添加新主题。
-
ChartThemeLight
-
ChartThemeBlueCerulean
-
ChartThemeDark
-
ChartThemeBrownSand
-
ChartThemeBlueNcs
-
ChartThemeHighContrast
-
ChartThemeBlueIcy
-
QT
内容 | 值 | 说明 |
---|---|---|
QChart::NoAnimation | 0x0 | 图表中禁用动画。这是默认值。 |
QChart::GridAxisAnimations | 0x1 | 在图表中启用网格轴动画。 |
QChart::SeriesAnimations | 0x2 | 图表中已启用系列动画。 |
QChart::AllAnimations | 0x3 | 图表中启用了所有动画类型。 |
相关文章:

Qt Charts简介
文章目录 一.图标类型Charts分类1.折线图和样条曲线图2.面积图和散点图3.条形图4.饼图5.误差棒图6.烛台图7.极坐标图 二.坐标轴Axes类型分类三.图例四.图表的互动五.图表样式主题 一.图标类型Charts分类 图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的…...

MinGW、GCC、GNU和MSVC是什么?有什么区别?
在C和C开发中,常常会遇到MinGW、GCC、GNU和MSVC这些术语。本教程将向您解释它们的含义以及它们之间的区别,帮助您更好地理解这些常见的编译工具和开发环境。 MinGW(Minimalist GNU for Windows): MinGW是一个开源的软件…...

引入easyExcel后,导致springboot项目无法开启tomcat
报错信息: Caused by: java.lang.annotation.IncompleteAnnotationException: org.terracotta.statistics.Statistic missing element type at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:81) at com.sun.proxy…...

Doris数据库FE——启动流程源码详细解析
Doris中FE主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。代码路径:doris/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java 环境检查 在启动FE的时候,主要做环境检查。检查一些启动时必要的环境变量以及初始化配置…...

服务断路器_Resilience4j线程池隔离实现
线程池隔离配置修改YML文件 resilience4j:thread-pool-bulkhead: instances:backendA:# 最大线程池大小maxThreadPoolSize: 4# 核心线程池大小coreThreadPoolSize: 2# 队列容量queueCapacity: 2编写controller /*** 测试线程池服务隔离* return*/Bulkhead(name "backe…...

原神启动原神启动原神启动原神启动
测试游戏抽卡场景是确保玩家可以正常抽取虚拟物品或角色的重要部分。以下是一些可能的游戏抽卡场景的测试用例示例: 1.正常抽卡流程: 2.测试用户是否能够成功进行一次或多次抽卡操作。 3.确保每次抽卡后,用户收到相应的物品或角色。 4.抽卡…...

Glide - Android的图像加载和缓存库,专注于平滑滚动
官网 GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 项目介绍 An image loading and caching library for Android focused on smooth scrolling Glide is a fast and efficient open source media management a…...

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解
在当今的数字化时代,应用程序接口(API)已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换,从而促进了信息的广泛传播和利用。在众多的数据源中,商品数据是一个非常重要的领域,…...

苹果 CMS 原生 Java 白菜影视 App 源码【带打包教程】
苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序,支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比,该套源码更加稳定,且拥有画中画投屏和自定义广告等功能,提高了安全性。 …...

Flutter开发之Package与Plugin
前言 在flutter中有包和插件两个概念,插件 (plugin) 是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。包(Package)主要指对flutter相关功能的封装,类似于Android中的插件和iOS中的三方库。而插…...

[极客大挑战 2019]RCE ME 取反绕过正则匹配 绕过disable_function设置
目录 取反 1.蚁剑插件绕过 2.baypass disable_function open_dir/disable_function putenv()/LD_PRELOAD 来绕过限制 利用条件 利用思路 有意思。。。。 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("Th…...

硬盘接口随机
关于硬盘接口 1 首先,关于[物理接口、协议、通道]2 物理接口:通讯中的电,光口,“物理规格,像是公路、铁路”。通道:通讯协议中的应用层以下所有层?“县道,省道,高速&am…...

芯片测试方案之如何测试芯片EN输入阈值?
在电源管理芯片的设计中,除了常规的VIN、VOUT以及GND端口之外,还会有SW、EN、FB等芯片独有的特殊端口引脚,这些引脚或负责电源开关的输入,或负责电路的反馈电压/电流,这些引脚在芯片的工作中有着极其重要的作用&#x…...

screenOrientation的值
在 Android 应用程序中,android:screenOrientation 属性可以设置为多个不同的值,以控制活动的屏幕方向。以下是一些常用的 android:screenOrientation 的值: "unspecified":这是默认值,表示系统会根据设备的…...

为什么SQL预编译可以防止SQL注入攻击
前言 防范SQL注入攻击是每一位做后端开发的程序员必须会的基本功。本文介绍其中一种防范攻击的方法:SQL预编译。 本文大部分内容引用自这篇文章,部分内容有修改。 注入例子 先简单回顾下SQL注入攻击的过程,假设有一个SQL语句: …...

基于体系结构-架构真题2022(四十一)
给定关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统中分解规则是指()为F所蕴含。 解析: 伪传递是x到y,wy到z,则xw到z 传递是z…...

【uniapp+vue3 】页面加载时根据不同角色设置导航栏标题
uniapp 页面加载时根据不同角色设置导航栏标题 其实很好实现,第一次开发uniapp项目,所以什么都不懂,绕了一点点的弯路 在对应页面的onLoad中获取到跳转过来传的参数中的判断角色字段,我这里传的是getRole uni.setNavigationBarT…...

不讲故事的设计模式-模板方法模式
文章目录 模板方法模式简介作用模板方法模式的缺点模板方法模式的应用场景业务场景开源框架中的应用 对比回调和Hook模式关于组合优先于继承 关于设计模式乱用的现象 模板方法模式 简介 模板方法模式是一种行为型设计模式,该设计模式的核心在于通过抽象出一套相对…...

基于SpringBoot的酒店客房管理系统
基于SpringBoot的酒店管理系统、酒店客房管理系统 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员界面 用户界面 代码展示 <temp…...

消息队列-RabbitMQ(二)
接上文《消息队列-RabbitMQ(一)》 1、RabbitMQ概念...

程序通过命令行获取操作系统名称+版本+CPU名称等:Part2
文章目录 (一)沿用的方法(二)问题和调整(2.1)Windows11的版本号是10.0(2.2)Golang和管道符号(Linux)(2.3)最大内存容量 vs 当前安装内…...

微软最热门的10款前端开源项目!
本文来盘点微软开源的十大前端项目,这些项目在 Github 上获得了超过 45 万 Star! Visual Studio Code Visual Studio Code 是一款由微软开发的开源的代码编辑器。它支持多种编程语言,如C、C、C#、Python、JavaScript 和 TypeScript 等&…...

C#(CSharp)入门实践项目(简易回合制游戏)
项目名称 木木夕营救公主 项目介绍 这是一个小游戏,你将扮演一个英雄(木木夕),去打败恶龙,拯救出公主,该项目采用回合制战斗模式,由于角色的血量和攻击为随机数,所以需要靠运气才…...

GEO生信数据挖掘(五)提取临床信息构建分组,分组数据可视化(绘制层次聚类图,绘制PCA图)
检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 上节做了很多的基因数据清洗(离群值处理、低表达基因、归一化、log2处理)操作,本节介绍构建临床分组信息。 我们已经学习了提取表达矩阵的临床…...

golang时间问题汇总(用法常见问题:插入数据库时间自动+8)
golang时间问题汇总(用法&常见问题) 1 用法 1.1 time.Parse() func main() {timeStr : "2023-09-26 20:56:23"allDate, _ : time.Parse("2006-01-02 15:04:05", timeStr)fmt.Println("全部解析", allDate) timeStr…...

TCP网络连接中的三次握手和四次挥手
作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! TCP网络连接中的三…...

游戏服务商Latis Global参展2023 ChinaJoy B2B
第20届ChinaJoy于2023年7月在上海举行了为期四天的博览会,参展观众达到了33.8万人次。ChinaJoy是全球最具知名度与影响力的年度盛会之一,涵盖了包括游戏、动漫、互联网影视、电子竞技、潮流玩具、智能娱乐在内的多个数字娱乐领域。ChinaJoy不仅仅代表了数字娱乐领域的最新风向,…...

oracle常用sql
oracle常用sql oracle常用sql查询当前会话id(sid),会话序列号(serial#),操作系统进程id(spid)查询数据库信息查询实例信息查询字符集查看回收站情况数据库系统PSU信息数据库大小查看表空间状况常规库表空间情况查询,非CDBCBD表空间情况查询当前客户端信息资源使用情况…...

手游模拟器长时间运行后,游戏掉帧且不恢复
1)手游模拟器长时间运行后,游戏掉帧且不恢复 2)FrameBuffer Fetch无论哪种模式在确定支持的手机上显示全紫 3)协程中yield return CoFunction()和yield return StartCoroutine(CoFunction())的区别 这是第353篇UWA技术知识分享的推…...

linux下离线安装telnet
安装过程概要: (一)互联网端下载rpm包; (二)上传到服务器root目录下; (三)安装telnet服务和测试: 详细内容: (一)互联…...