当前位置: 首页 > news >正文

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密集型的应用中&#xff0c…...

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以内&#xff08;包含100&#xff09;能被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 循环中&#xf…...

kv视频如何转码mp4格式,kv转换mp4最简单方法

在数字化时代&#xff0c;视频格式转换成为了一项日常需求。有时候我们需要把kv格式转换为MP4格式。下面将详细介绍kv转MP4的方法 方法一、 1、使用 "小白兔视频格式在线转换网站" 2、地址发给"小白兔视频格式在线转换网站"的客服&#xff0c;客服下载即可…...

哈夫曼树详解

哈夫曼树 例题 有n堆果子&#xff0c;每堆果子的质量已知&#xff0c;现在需要把这些果子合并成一堆&#xff0c;但是每次只能把两堆果子合并到一起&#xff0c;同时会消耗与两堆果子质量之和等值的体力。显然&#xff0c;在进行n-1次合并之后&#xff0c;就只剩下一堆了。为…...

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下载安装&#xff08;Windows&#xff09;二、案例需求分析三、后端接口开发 一、minio下载安装&#xff08;Windows&#xff09; 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 用户口令&#xff08;密码&#xff09;的管理 总结 前言 本篇文章介绍如何在Linux系统上实现…...

项目-五子棋双人对战:游戏房间的管理(5)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 之前我们已经实现了玩家匹配的功能, 我们都知道, 匹配完过后就可以进入游戏房间进行对战了, 所以我们下一步关注的重点就是对于游戏房间的管理. 模块详细讲解 功能需求 通过匹配的方式, 自动给玩家加入到一个游戏房间…...

LocalDate和Date有什么区别?两者如何转换?

LocalDate与Date 在Java中&#xff0c;LocalDate和Date是用来处理日期的两种不同的类。 区别&#xff1a; Date是Java早期的日期类&#xff0c;它包含了日期和时间的信息。但是在Java 8之后&#xff0c;Date类被标记为过时的&#xff0c;推荐使用新的日期时间API&#xff0c;…...

从电网到实验室——10kW大功率电源的Psim仿真实战

基于Psim的Boost型 PFC移相全桥AC-DC电源设计仿真 1、前级电网输入220AC&#xff0c;50Hz&#xff0c;中间级母线电压为600V&#xff0c;后级600V输入&#xff0c;547V输出&#xff0c;电压可调&#xff0c;功率10kW 2、前级基于Boost电路PFC&#xff0c;平均电流控制&#xff…...

2025年阿里云幻兽帕鲁联机服务器极速搭建指南

1. 为什么选择阿里云搭建幻兽帕鲁服务器&#xff1f; 最近很多朋友问我&#xff0c;为什么非要选择阿里云来搭建幻兽帕鲁的联机服务器&#xff1f;作为一个从游戏测试阶段就开始折腾服务器搭建的老玩家&#xff0c;我总结了几个关键原因。首先&#xff0c;阿里云的游戏服务器专…...

mrm-can-bus:轻量级嵌入式CAN设备服务协议库

1. 项目概述mrm-can-bus是一个面向嵌入式设备控制场景的轻量级 CAN 总线通信库&#xff0c;定位为“CAN Bus connectivity and local functions exposed via CAN Bus, common part”——即提供标准化的 CAN 连接能力&#xff0c;并将本地设备功能&#xff08;如 GPIO 控制、ADC…...

基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能

基于cartographer算法的自主导航系统仿真设计 移动机器人系统具备定位、建图及路径规划功能&#xff0c;在迷宫式的环境中建模导航。 模型以及移动机器人模型&#xff0c;移动机器人模型包含2D激光雷达传感器、轮式里程计以及惯性导航原件 基于cartographer算法建图&#xff0c…...

OpenClaw:AI 权限治理的核心问题

子玥酱 &#xff08;掘金 / 知乎 / CSDN / 简书 同名&#xff09; 大家好&#xff0c;我是 子玥酱&#xff0c;一名长期深耕在一线的前端程序媛 &#x1f469;‍&#x1f4bb;。曾就职于多家知名互联网大厂&#xff0c;目前在某国企负责前端软件研发相关工作&#xff0c;主要聚…...

CST仿真设计:反射透射性线圆转换与线线转换实战案例及录屏教程

cst仿真设计 反射透射性线圆转换&#xff0c;线线转换 案例与录屏打开CST刚打开模板栏是不是总盯着默认的几个空模板发呆&#xff1f;今天咱们整点新手入门但能快速装逼朋友圈或者中期报告材料的活——反射透射都能玩的偏振转换超表面&#xff08;Metasurface&#xff09;&…...

零基础学编程:借助快马与claude code生成交互式代码示例入门javascript

最近刚开始学习JavaScript&#xff0c;发现数组操作是编程中最基础也最常用的部分。作为一个完全零基础的小白&#xff0c;我尝试用InsCode(快马)平台结合Claude Code来学习这个知识点&#xff0c;整个过程比想象中顺利很多。这里记录下我的学习过程&#xff0c;希望能帮到同样…...

使用AI大大提升了学习代码的效率

最近看到一个观点&#xff0c;说AI的发展导致代码越来越不值钱了&#xff0c;AI降低了我们学习的门槛&#xff0c;大大提升了学习效率。好像很多程序都可以一个人一天上架一款产品。或许有夸张成分&#xff0c;但像我们普通人都体验到了AI的方便&#xff0c;比如在项目开发的过…...

CentOS7 下 Go 多版本管理与无缝升级指南

1. 为什么需要Go多版本管理&#xff1f; 在CentOS7系统上开发Go项目时&#xff0c;经常会遇到这样的尴尬&#xff1a;新项目需要用最新版Go的特性&#xff0c;而老项目必须跑在特定旧版本上才能兼容。我去年就踩过这个坑——用Go 1.21写完的微服务&#xff0c;部署到生产环境发…...

别再让电费偷偷溜走!用智能时间开关改造家里的热水器和空调(附保姆级选购指南)

别再让电费偷偷溜走&#xff01;用智能时间开关改造家里的热水器和空调&#xff08;附保姆级选购指南&#xff09; 每到月底收到电费账单时&#xff0c;那种"钱不知不觉就溜走"的感觉总是让人心疼。特别是热水器和空调这两大"电老虎"&#xff0c;它们往往…...