Qt图表类介绍
本文主要介绍QCharts相关的模块及类。
Qt中图表模块有以下几种类型:折线图,样条曲线图,面积图,散点图,条形图,饼图,方块胡须图,蜡烛图,极坐标图。
QCharts的图表框架类似于Qt的图形视图框架;
QChart类似于QGraphicsItem;
而QChartView类似于QGraphicsView;
可以将QChart看作容器,通过QChartView视图类来显示; QChart不需要场景类就能显示,而图形视图框架需要场景类来支撑显示。
使用图标类需要在项目添加charts模块,添加头文件并引入QtCharts的命名空间。
一.QChart 载体类
1.作用
(1)管理图表数据:用于管理图表上的一系列数据集合;
(2)设置图表属性:用于设置图表的标题,主题,动画等样式属性;
(3)管理图表轴:支持添加和管理图表的轴,可以向图表添加丛横轴,设定轴属性和刻度等;
(4)布局和位置控制:可以通过setPlotArea();方法设置图表的绘制区域,设定器大小和位置,或转换坐标;
(5)交互操作:提供一些方法和信号来支持图表的交互操作,如禁启用鼠标,捕获点击事件等;
(6)导出和打印:可以将图表导出为图片,PDF,SVG等格式,并支持打印和复制剪切等操作。
2.方法
(1)addSeries(); 用于将数据系列series添加到图表中;
(2)removeSeries(); 动态移除数据系列,更新图表显示;
(3)removeAllSeries(); 移除所有的数据系列;
(4)setTitle(); 设置图表的标题;
(5)setTheme(); 设置图表的主题;
(6)addAxis(axis, alignment); 添加轴到图表上。添加x轴y轴到图表中,并指定对齐方式(alignment),如左对齐、右对齐等;
(7)axisX()和axisY(); 获取图表中的横轴和纵轴对象,从而进一步定制轴的属性和设置;
(8)setPlotArea(rectangle); 设置图表的绘图区域,定义图表绘图区域的位置和大小,以控制图表中数据的显示范围;
(9)setBackgroundVisible(visible); 设置图表的背景可见性;
(10)setAnimationOptions(options); 设置图表的动画选项,定义图表的动画效果,在图表更新或切换数据时提供更流畅的过渡;
(11)legend(); 获取图表的图例对象,进行图例的设置和操作,比如位置、显示项等;
(12)zoomIn(rectangle); 在指定的矩形区域内进行缩放,可以实现对特定区域的放大显示;
(13)zoomOut(); 恢复图表的缩放级别;
(14)save(filename, format); 将图表保存为文件,如图片、PDF或SVG格式的文件,以便于导出和共享;
(15)createDefaultAxes(); 创建默认的横轴和纵轴, 自动创建横轴和纵轴对象,并添加到图表中,方便快速构建基本的图表。
二.QChartView 视图类
1.作用
(1)显示图表:作为一个独立的部件,专门用于显示图表;
(2)交互功能:用于处理一些常见的如缩放,平移,选择等交互操作;
(3)布局管理:可以通过布局管理器灵活的放置在界面中;
(4)样式定制:可以通过样式表来自定义其外观和样式;
(5)导出打印:提供了导出图表为图片格式或打印图表的功能;
2.方法
(1)chart(); 用于获取QChartView相关联的QChart对象;
(2)setChart(); 设置QChartView关联的QChart对象;
(3)setBackgroundBrush(); 用于设置QChartView的背景刷子(brush),定义图表视图的背景色、渐变或纹理等样式;
(4)setRenderHint(); 用于设置图表渲染时的一些提示选项。通过设置这些选项来优化图表的渲染效果和性能,如抗锯齿、高质量渲染等;
(5)setRubberBand(); 用于启用或禁用橡皮筋选择功能。当启用橡皮筋选择后,用户可以使用鼠标或触摸屏在图表上进行框选,并选择感兴趣的数据区域;
(6)setViewportUpdateMode(); 用于设置视图的更新模式。根据需要选择完整更新或增量更新模式,以控制图表视图的刷新行为;
(7)setInteractive(); 用于启用或禁用图表的交互功能。当启用交互功能后,用户可以使用鼠标或触摸屏进行缩放、平移和选择等操作;
(8)setDragMode(); 用于设置图表的拖动模式。可以选择平移模式或橡皮筋选择模式,以控制鼠标拖动时图表的行为;
(9)grab(); 用于获取图表视图的截图。使用grab()方法将图表视图保存为图片文件或进行其他处理;
(10)update(); 用于手动触发图表视图的更新。通常QChartView会自动管理图表视图的更新,但有时可能需要手动调用update()方法来强制刷新图表视图。
三.其他类
QLegend 图项标签类:该类用于显示图表的图例,不能自行创建或删除图例对象,但可以通过QChart类引用他们;
QValueAxis 数值填充类:该类用于将数据添加到图表的轴上。
具体的图标绘制请参看下篇文章。
相关文章:
Qt图表类介绍
本文主要介绍QCharts相关的模块及类。 Qt中图表模块有以下几种类型:折线图,样条曲线图,面积图,散点图,条形图,饼图,方块胡须图,蜡烛图,极坐标图。 QCharts的图表框架类似…...
时隔很久运行苍穹外卖项目,出现很多错误
中途运行了很多其他项目,maven的配置文件还被我修改了一次。导致再次运行苍穹外卖项目出现很多错误。 发现没有办法,把本地的仓库删了个干干净净。然后点击clean发现报错: Cannot access alimaven (http://mavejavascript:void(0);n.aliyun.…...
补篇协程:协程(Coroutine)里通过挂起suspend函数实现异步IO操作
异步IO的概念 异步IO是一种非阻塞的数据读写方法,异步IO与同步IO相对。 当一个异步过程调用发出后,调用者不能立刻得到结果。 实际的IO处理部件在完成操作后,会通过状态、通知或回调机制来通知调用者。 在一个CPU密集型的应用中,…...
qmt量化交易策略小白学习笔记第16期【qmt编程之获取北向南向资金(沪港通,深港通和港股通)】
qmt编程之获取北向南向资金 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 北向南向资金(沪港通,深港通和港股通) #北向南向资金交易日历 获取交易日列表…...
开源项目学习——vnote
一、介绍 vnote是一款免费且开源的markdown编辑器,用C开发,基于Qt框架,windows/linux/mac都能用。 二、编译 $ git clone --recursive https://github.com/vnotex/vnote.git $ cd vnote && mkdir build $ cd build $ cmake ../ $ …...
5_1 Linux 计划任务
5_1 Linux 计划任务 文章目录 5_1 Linux 计划任务[toc]1. crontab 命令2. 计划任务书写格式 用途:按照设置的时间间隔,为用户反复执行某一固定的系统任务 软件包:cronie、crontabs 系统服务:crond 日志文件:/var/log/c…...
接口框架项目实战-pytest(六)csv数据驱动
csv 数据驱动 为了解决数据量大 导致yaml文件重复太多 yaml_util.py import osimport jsonpath import yamlfrom pytestdemo.common.base_util import get_path from pytestdemo.common.csv_util import analysis_parametersdef read_config_file(one_node,two_node):with ope…...
【Apache Doris】周FAQ集锦:第 5 期
【Apache Doris】周FAQ集锦:第 5 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和…...
再读高考作文题
新课标I卷:讨论了随着互联网和人工智能的普及,问题是否会变得越来越少,要求考生写一篇文章,表达自己对于这一现象的联想和思考。 从来就没有什么救世主 AI也不是 一直不会写作文,直到高中,才堪堪…...
小程序中实现自定义头部导航组件
在页面中实现自定义头部导航的组件,如果仅是单个页面中需要自定义可在页面的json文件中配置"navigationStyle": “custom”,如果是项目中所有页面都想使用自定义的组件,可在app.json的window中全局配置"navigationStyle"…...
算数运算符与表达式(打印被10整除的数)
打印100以内(包含100)能被10整除的正整数 #include <stdio.h>#define UPPER 100int main() {int i 1;while (i < UPPER)if (i % 10 0)printf("%d\n", i);return 0; } 自增运算符 i 用于递增变量 i 的值。在 while 循环中…...
kv视频如何转码mp4格式,kv转换mp4最简单方法
在数字化时代,视频格式转换成为了一项日常需求。有时候我们需要把kv格式转换为MP4格式。下面将详细介绍kv转MP4的方法 方法一、 1、使用 "小白兔视频格式在线转换网站" 2、地址发给"小白兔视频格式在线转换网站"的客服,客服下载即可…...
哈夫曼树详解
哈夫曼树 例题 有n堆果子,每堆果子的质量已知,现在需要把这些果子合并成一堆,但是每次只能把两堆果子合并到一起,同时会消耗与两堆果子质量之和等值的体力。显然,在进行n-1次合并之后,就只剩下一堆了。为…...
LangChain4j实战
基础 LangChain4j模型适配: Provider Native Image Sync Completion Streaming Completion Embedding Image Generation Scoring Function Calling OpenAI ✅ ✅ ✅ ✅ ✅ ✅ Azure OpenAI ✅ ✅ ✅ ✅ ✅ Hugging Face ✅ ✅ Amazon Bedrock ✅ ✅…...
57.Semaphore信号量
用来限制能同时访问共享资源的线程上限。只是适合限制单机线程数量。 Slf4j public class SemaphoreDemo {public static void main(String[] args) {Semaphore semaphore new Semaphore(3);for (int i 0; i < 10; i) {new Thread(() -> {try {semaphore.acquire();//…...
生成式人工智能 - 文本反转(Textual Inversion):一种微调稳定扩散模型的方法
一、简述 大型文本到图像稳定扩散模型已经展示了前所未有的能力,可以使用文本提示合成新场景。这些文本到图像模型提供了通过自然语言指导创作的自由。然而,它们的使用受到用户描述特定或独特场景、艺术创作或新实体产品的能力的限制。很多时候,用户被限制行使她的艺术自由来…...
minio的一个基础使用案例:用户头像上传
文章目录 一、minio下载安装(Windows)二、案例需求分析三、后端接口开发 一、minio下载安装(Windows) 1. 下载minio服务端和客户端 minio下载地址 2. 手动搭建目录 /minio/binmc.exeminio.exe/data/logs手动创建minio应用程序目…...
Linux用户和用户组的管理
目录 前言一、系统环境二、Linux用户组的管理2.1 新增用户组2.2 删除用户组2.3 修改用户组2.4 查看用户组 三、Linux用户的管理3.1 新增用户3.2 删除用户3.3 修改用户3.4 查看用户3.5 用户口令(密码)的管理 总结 前言 本篇文章介绍如何在Linux系统上实现…...
项目-五子棋双人对战:游戏房间的管理(5)
完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 之前我们已经实现了玩家匹配的功能, 我们都知道, 匹配完过后就可以进入游戏房间进行对战了, 所以我们下一步关注的重点就是对于游戏房间的管理. 模块详细讲解 功能需求 通过匹配的方式, 自动给玩家加入到一个游戏房间…...
LocalDate和Date有什么区别?两者如何转换?
LocalDate与Date 在Java中,LocalDate和Date是用来处理日期的两种不同的类。 区别: Date是Java早期的日期类,它包含了日期和时间的信息。但是在Java 8之后,Date类被标记为过时的,推荐使用新的日期时间API,…...
铝合金货物运输鉴定书办理 货物危险性鉴定
货物运输鉴定书/货物危险性鉴定 项目背景: 为了运输的安全,航空运输、公路运输、铁道运输、水路运输都必须了解货物的运输危险性。货物运输条件鉴定就是对货物的运输适宜性作出评价和建议。 货物运输条件鉴定一般依据IATA危险货物规章(DGR)2005、联合国危…...
php操作数据库
<?php session_start(); #面向过程 function create_connection(){ $conn mysqli_connect(127.0.0.1,root,123456,learn_2) or die("数据库连接失败"); mysqli_query($conn,"set names utf8"); return $conn; } #面向对象 function create_connection…...
python记录之集合
Python中的集合(Set)是一个无序且不包含重复元素的数据结构。集合主要用于成员检测和数据去重。 1. 集合的创建 在Python中,你可以使用大括号{}或set()函数来创建一个集合。注意,如果你使用大括号{}并且只包含一个元素ÿ…...
ResourceManager 的 rpc server 模型
一. yarn ResourceManager 的三种通信协议 ResourceTrackerProtocol NodeManager 和 ResourceManager 的 RPC 通信协议。其中 ResourceManager 充当RPC Server的角色,而 NodeManager 充当 RPC Client 的角色。NodeManager 通过该协议向 ResourceManager 注册、汇报…...
Java面试八股之什么是自动装箱和自动拆箱
什么是自动装箱和自动拆箱 在Java中,自动装箱(Autoboxing)和自动拆箱(Auto-unboxing)是两个与基本数据类型和它们对应的包装类之间的转换相关的特性。这两个概念自Java 5(也称为Java SE 5或JDK 5ÿ…...
OrangePi AIpro小试牛刀-目标检测(YoloV5s)
非常高兴参加本次香橙派AI Pro,香橙派联合华为昇腾打造的一款AI推理开发板评测活动,以前使用树莓派Raspberry Pi4B 8G版本,这次有幸使用国产嵌入式开发板。 一窥芳容 这款开发板搭载的芯片是和华为昇腾的Atlas 200I DK A2同款的处理器&#…...
QT案例 记录解决在管理员权限下QFrame控件获取拖拽到控件上的文件路径
参考知乎问答 Qt管理员权限如何支持拖放操作? 的回答和代码示例。 解决在管理员权限运行下,通过窗体的QFrame子控件获取到拖拽的内容。 目录标题 导读解决方案详解示例详细 【管理员权限】在QFrame控件中获取拖拽内容 【管理员权限】继承 IDropTarget 类…...
[HNCTF 2022 WEEK4]flower plus
第一种花指令 第二种花指令 根据两种花指令特征,写出去花指令脚本 saddr0x401000 eaddr0x435000 for i in range(saddr,eaddr):if get_wide_dword(i)0x01740275:print(hex(i),hex(get_wide_dword(i)))patch_byte(i-5,0x90)patch_dword(i-4,0x90909090)patch_dw…...
Mongo常用语法(java代码)
1、根据agentId字段分组,并对totalCustomerNum、refundCustomerNum字段 sum求和,同时取别名 Overridepublic List<AgentCountInfoBean> selectCurrentMonthNewResource(Set<String> orderTypeSet, List<String> agentIds,LocalDateTim…...
go语言后端开发学习(二)——基于七牛云实现的资源上传模块
前言 在之前的文章中我介绍过我们基于gin框架怎么实现本地上传图片和文本这类的文件资源(具体文章可以参考gin框架学习笔记(二) ——相关数据与文件的响应),但是在我们实际上的项目开发中一般却是不会使用本地上传资源的方式来上传的,因为文件的上传与读…...
网站建设 专家/优化大师软件大全
物联网技术发展趋势是LPWAN,其中尤其以NB-IoT和eMTC最为代表。NB-IoT和eMTC各有优劣,使用场景互有不同。 低功耗可以说是物联网技术的核心,本着关注低功耗的方向,适当了解NB IoT在整个LTE中的位置,NB-IoT的协议&#x…...
广西网络公司有几家/广西网站seo
/* 题意: 给若干字符串,添加最少的字符把它们变成回文 ,并输出回文。 记忆化搜索,如果s[i]s[j],dp[i][j]dfs(i1,j-1); 否则 dp[i][j]min(dp[i][j],dfs(i1,j),dfs(i,j-1); 最先开始也不造怎么输出,后来看了题解…...
学做缝纫的网站/网络舆情分析研判报告
install JDKInstall hadoopRun Project on Hadoop install JDK 需要提前安装好jdk和ant。 jdk是对java程序进行编译的工具(java development kid) jre:java runtime environment是提供java虚拟机的运行环境。 ant:项目管理工具…...
做情诗网站/快速开发平台
用法一: 在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更…...
网站访问量什么意思/最近新闻事件
请问唐氏筛查低风险人群,有必要做无创DNA吗?唐氏筛查低风险,有必要做无创DNA检查吗?这个问题问的好,如果单纯性的唐氏筛查低风险,那么根本没有必要再做无创DNA检查了。现实生活中还是存在很多唐氏筛查低风险…...
北京三屏网站制作/百度资讯
【PConline深圳站行情】条码打印机的应用在我们生活中已经屡见不鲜,超市中的产品标签打印既是这类产品制造出来的,大部分条码打印机只能针对不同行业需求进行打印,而且其价格不菲。如果出现一款能应用于多种行业且经济实惠的产品,…...