Qt中图表图形绘制类介绍
接上篇介绍QChart 相关的类,本片主要在QChart 载体上进行图表图形绘制使用各种形状的图类。
一.QXYSeries类
QXYSeries类是QLineSeries折线图,QSplineSeries样条曲线图,QScatterSeries散点图的基类;
QXYSeries类的使用都可以参考下面详细介绍的折线图,样条曲线图,散点图等的应用。
二.QLineSeries 折线图类
1.图表属性
setName(); 设置名称
setColor(); 设置颜色
SetPen(); 设置画笔
hide(); 设置显隐
setVisible(); 设置可见
setBrush(); 设置画刷
setOpacity(); 设置透明度
2.数据操作
append(); 或 replace(); 添加数据
setPointsVisible(); 设置数据点的可见性
clear(); 清空图表内的数据
removePoints(); 从某个位置开始删除之后的数据点
3.标签操作
setPointLabelsVisible(); 设置可见性
setPointLabelsColor(); 设置文字颜色
setPointLabelsFont(); 字体设置
setPointLabelsFormat(); 格式设置
三.QBarSeries 柱状图类
1.QBarSet 集合元素
append(); 添加值到数据集的末尾
replace(); 替换数据集中的值
clear(); 清除数据集中所有值
count(); 返回数据集中值的个数
isEmpty(); 检查数据集是否为空
at(); 返回数据集中指定的值
2.QBarSeries 数据系列
append(); 添加QBarSet对象到系列的末尾
replace(); 替换系列中的QBarSet对象
clear(); 清楚所有对象
count(); 返回系列中对象的个数
isEmpty(); 检查系列是否为空
at(); 返回系列中指定索引的QBarSet对象
3.QBarCategoryAxis 条形图横坐标
void append(const QStringList &categories) , 将一组类别添加到轴的末尾
void insert(int index, const QString &category), 在指定索引位置插入一个类别。
void remove(const QString &category), 移除指定的类别。
void clear(); 清除轴中的所有类别。
int count(); 返回轴中类别的数量。
QString categoryAt(int index); 返回轴中指定索引位置的类别。
QStringList categories(); 返回包含轴所有类别的列表。
void setCategories(const QStringList &categories); 设置轴的类别。
void setStartValue(qreal value); 设置轴的起始值。
qreal startValue(); 返回轴的起始值。
void setRange(qreal min, qreal max); 设置轴的范围。
void append(const QVector &points); 将一组点添加到轴的末尾,用于自动设置类别。
void replace(const QVector &points); 提供一个组点替换整个轴,用于自动设置类别
4.QStackedBarSeries 堆叠图
QStackedBarSeries(QObject *parent = nullptr) 构造函数,创建一个 QStackedBarSeries 对象。
void append(QBarSet *set) 将一个 QBarSet 添加到序列中。
void append(QList<QBarSet *> sets) 将一组 QBarSet 添加到序列中。
QList<QBarSet *> barSets() const 返回序列中的所有 QBarSet。
void setLabelsVisible(bool visible) 设置是否显示柱状图的标签。
bool labelsVisible() const 返回柱状图的标签可见性。
void setLabelsFormat(const QString &format) 设置标签的显示格式。
QString labelsFormat() const 返回标签的显示格式。
void setLabelsPosition(QAbstractBarSeries::LabelsPosition position) 设置标签的位置。
QAbstractBarSeries::LabelsPosition labelsPosition() const 返回标签的位置。
5.QPercentBarSeries 百分比图
QPercentBarSeries() 构造函数,创建一个 QPercentBarSeries 对象。
setLabelsVisible(bool) 设置百分比柱状图上的数据标签是否可见。
labelsVisible() 返回百分比柱状图上的数据标签是否可见的状态。
setLabelsPosition(Position) 设置百分比柱状图上的数据标签位置,Position 是一个枚举类型,表示标签的位置,如上方、下方、内部等。
labelsPosition() 返回百分比柱状图上的数据标签位置。
setLabelsFormat(QString) 设置百分比柱状图上的数据标签的格式,使用字符串指定标签的显示格式。
labelsFormat() 返回百分比柱状图上的数据标签的显示格式。
setPercentageVisible(bool) 设置百分比柱状图上的百分比标签是否可见。
percentageVisible() 返回百分比柱状图上的百分比标签是否可见的状态。
setStackingGap(qreal) 设置百分比柱状图中堆叠的百分比柱之间的间隙。
stackingGap() 返回百分比柱状图中堆叠的百分比柱之间的间隙。
append(QBarSet*) 在百分比柱状图中追加一个数据集。
insert(int, QBarSet*) 在百分比柱状图中插入一个数据集,参数为位置索引和 QBarSet 对象。
remove(QBarSet*) 从百分比柱状图中移除指定的数据集。
take(int) 从百分比柱状图中移除并返回指定位置的数据集。
take(QBarSet*) 从百分比柱状图中移除指定的数据集并返回。
count() 返回百分比柱状图中数据集的数量。
barSets() 返回百分比柱状图中所有数据集的列表。
barWidth() 返回百分比柱状图中百分比柱的宽度。
barWidthChanged(qreal) 当百分比柱状图中百分比柱的宽度发生变化时发出的信号,参数为新的宽度值。
四.QPieSerics 饼状图类
1.QPieSlice 单个饼块类
QPieSlice(qreal value, QString label) 构造函数,创建一个带有给定值和标签的 QPieSlice 对象。
setLabel(QString label) 设置饼块的标签文字。
label() 返回饼块的标签文字。
setValue(qreal value) 设置饼块的值。
value() 返回饼块的值。
setExploded(bool exploded) 设置饼块是否为爆炸状态,即是否与饼图分离。
isExploded() 返回饼块是否为爆炸状态。
setPieSeries(QPieSeries *series) 设置饼块所属的 QPieSeries 对象。
pieSeries() 返回饼块所属的 QPieSeries 对象。
setBrush(const QBrush &brush) 设置饼块的画刷,即填充颜色。
brush() 返回饼块的画刷。
setLabelBrush(const QBrush &brush) 设置饼块标签的画刷,即标签的颜色。
labelBrush() 返回饼块标签的画刷。
setPen(const QPen &pen) 设置饼块的画笔,即边框颜色和样式。
pen() 返回饼块的画笔。
setLabelVisible(bool visible) 设置饼块标签是否可见。
isLabelVisible() 返回饼块标签是否可见。
setExplodeDistanceFactor(qreal factor) 设置饼块爆炸时的距离因子,即与饼图分离的距离。
explodeDistanceFactor() 返回饼块爆炸时的距离因子。
setPercentage(qreal percentage) 设置饼块的百分比值。
percentage() 返回饼块的百分比值。
clicked(bool state) 鼠标点击饼块时发出的信号,参数为鼠标点击的状态(按下或释放)。
hovered(bool state) 鼠标悬停在饼块上时发出的信号,参数为悬停状态。
pressed() 鼠标按下饼块时发出的信号。
released() 鼠标释放饼块时发出的信号。
2.QPieSeries 饼状图类
QPieSeries(QObject *parent = nullptr) 构造函数,创建一个 QPieSeries 对象。
append(QPieSlice *slice) 向饼状图序列中追加一个饼块。
insert(int index, QPieSlice *slice) 在指定位置插入一个饼块。
remove(QPieSlice *slice) 从饼状图序列中移除指定的饼块。
clear() 清除饼状图序列中的所有饼块。
slices() 返回饼状图序列中的所有饼块。
count() 返回饼状图序列中的饼块数量。
at(int index) 返回饼状图序列中指定索引位置的饼块。
setVisible(bool visible) 设置饼状图序列的可见性。
isVisible() 返回饼状图序列的可见性。
setHoleSize(double size) 设置饼状图中间空心的大小,范围为 [0.0, 1.0],0.0 表示没有空心,1.0 表示整个饼状图都是空心。
holeSize() 返回饼状图中间空心的大小。
setPieSize(double size) 设置饼状图的大小,范围为 [0.0, 1.0],默认为 1.0。
pieSize() 返回饼状图的大小。
setLabelsVisible(bool visible) 设置饼块的标签是否可见。
labelsVisible() 返回饼块的标签是否可见。
setLabelsPosition(QPieSlice::LabelPosition position) 设置饼块标签的位置。
labelsPosition() 返回饼块标签的位置。
setLabelsPrecision(int precision) 设置饼块标签显示的小数位数。
labelsPrecision() 返回饼块标签显示的小数位数。
clicked(QPieSlice *slice) 点击饼块时发出的信号,参数为被点击的饼块。
hovered(QPieSlice *slice, bool state) 鼠标悬停在饼块上时发出的信号,参数为被悬停的饼块和悬停状态。
pressed(QPieSlice *slice) 鼠标按下饼块时发出的信号,参数为被按下的饼块。
released(QPieSlice *slice) 鼠标释放饼块时发出的信号,参数为被释放的饼块。
五.QScatterCerics 散点图类
1.QSplineSeries 绘制曲线类
QSplineSeries(QObject *parent = nullptr) 构造函数,创建一个 QSplineSeries 对象。
append(QPointF point) 向曲线中追加一个数据点。
append(QList points) 向曲线中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换曲线中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空曲线中的所有数据点。
pointsVector() 返回曲线的数据点。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setPen(const QPen &pen) 设置曲线的画笔,即曲线的颜色和样式。
pen() 返回曲线的画笔。
setBrush(const QBrush &brush) 设置曲线的画刷,即填充颜色。
brush() 返回曲线的画刷。
setPointLabelsVisible(bool visible) 设置是否显示数据点的标签。
isPointLabelsVisible() 返回数据点的标签是否可见。
setPointLabelsFormat(const QString &format) 设置数据点标签的显示格式,支持使用占位符。
pointLabelsFormat() 返回数据点标签的显示格式。
setPointLabelsColor(const QColor &color) 设置数据点标签的颜色。
pointLabelsColor() 返回数据点标签的颜色。
setPointLabelsFont(const QFont &font) 设置数据点标签的字体。
pointLabelsFont() 返回数据点标签的字体。
setPointsVisible(bool visible) 设置是否显示数据点。
arePointsVisible() 返回数据点是否可见。
setPointLabelsClipping(bool clipping) 设置是否裁剪超出绘图区域的数据点标签。
isPointLabelsClipping() 返回数据点标签是否裁剪超出绘图区域。
clicked(QPointF point) 鼠标点击曲线时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在曲线上时发出的信号,参数为悬停状态以及悬停位置的数据点坐标。
pressed(QPointF point) 鼠标按下曲线时发出的信号,参数为鼠标按下的数据点坐标。
released(QPointF point) 鼠标释放曲线时发出的信号,参数为鼠标释放的数据点坐标。
doubleClicked(QPointF point) 鼠标双击曲线时发出的信号,参数为鼠标双击的数据点坐标。
2.QScatterCerics 散点图类
QScatterSeries(QObject *parent = nullptr) 构造函数,创建一个 QScatterSeries 对象。
append(QPointF point) 向散点图中追加一个数据点。
append(QList points) 向散点图中追加一组数据点。
replace(int index, QPointF point) 替换指定索引处的数据点。
replace(QList points) 替换散点图中的所有数据点。
remove(int index) 移除指定索引处的数据点。
remove(int index, int count) 移除从指定索引开始的指定数量的数据点。
clear() 清空散点图中的所有数据点。
pointsVector() 返回散点图的数据点。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setPen(const QPen &pen) 设置散点图的画笔,即散点的边框颜色和样式。
pen() 返回散点图的画笔。
setBrush(const QBrush &brush) 设置散点图的画刷,即散点的填充颜色。
brush() 返回散点图的画刷。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBackgroundColor(const QColor &color) 设置散点的背景颜色。
backgroundColor() 返回散点的背景颜色。
setBorderColor(const QColor &color) 设置散点的边框颜色。
borderColor() 返回散点的边框颜色。
setBrush(const QBrush &brush) 设置散点的画刷,即填充颜色。
brush() 返回散点的画刷。
setPen(const QPen &pen) 设置散点的画笔,即边框颜色和样式。
pen() 返回散点的画笔。
setUseOpenGL(bool enable) 设置是否使用 OpenGL 进行绘制。
useOpenGL() 返回是否使用 OpenGL 进行绘制。
setMarkerShape(QScatterSeries::MarkerShape shape) 设置散点的形状,可以是圆形、方形等。
markerShape() 返回散点的形状。
setMarkerSize(qreal size) 设置散点的大小。
markerSize() 返回散点的大小。
setMarkerColor(const QColor &color) 设置散点的颜色。
markerColor() 返回散点的颜色。
clicked(QPointF point) 鼠标点击散点时发出的信号,参数为鼠标点击的数据点坐标。
hovered(QPointF point, bool state) 鼠标悬停在散点上时发出的信
六.其他
除过以上常见的图表类,还有QAreaSerics 面积图类和QCategoryAxis 分类轴类,但这两个比较少见,在此不做表述。
相关文章:
Qt中图表图形绘制类介绍
接上篇介绍QChart 相关的类,本片主要在QChart 载体上进行图表图形绘制使用各种形状的图类。 一.QXYSeries类 QXYSeries类是QLineSeries折线图,QSplineSeries样条曲线图,QScatterSeries散点图的基类; QXYSeries类的使用都可以参考…...
nginx rewrite地址重写
常用的nginx正则表达式 ^匹配以...开头的字符串$匹配以...结尾的字符串^$^$表示空行*匹配前面的字符0次或者多次(通配符*表示任意数量的任意字符)匹配前面的字符1次或多次?匹配前面的字符0次或1次.匹配除了“\n”之外的任意单个字符,[.\n]表…...
java+vue3+el-tree实现树形结构操作
基于springboot vue3 elementPlus实现树形结构数据的添加、删除和页面展示 效果如下 代码如下,业务部分可以自行修改 java后台代码 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.daztk.mes.common.annotation.LogOperation…...
Oracle创建索引的LOGGING | NOLOGGING区别
在Oracle中,创建索引时的LOGGING和NOLOGGING选项主要影响索引创建过程中产生的重做日志(redo log)的数量。这两个选项对于性能和数据恢复能力有着显著的影响。以下是关于这两个选项的详细解释和区别: LOGGING 定义:当…...
GoogleDeepMind联合发布医学领域大语言模型论文技术讲解
Towards Expert-Level Medical Question Answering with Large Language Mod 这是一篇由Google Research和DeepMind合作发表的论文,题为"Towards Expert-Level Medical Question Answering with Large Language Models"。 我先整体介绍下这篇论文的主要内容&#x…...
Spark安装、解压、配置环境变量、WordCount
Spark 小白的spark学习笔记 2024/5/30 10:14 文章目录 Spark安装解压改名配置spark-env.sh重命名,配置slaves启动查看配置环境变量 工作流程maven创建maven项目配置maven更改pom.xml WordCount按照用户求消费额上传到spark集群上运行 安装 上传,直接拖拽…...
DeepSeek-V2-Chat多卡推理(不考虑性能)
TOC 本文演示了如何使用accelerate推理DeepSeek-V2-Chat(裁剪以后的模型,仅演示如何将权值拆到多卡) 代码 import torch from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig from accelerate import init_empty_weights import sys from acce…...
算法题day42(补5.28日卡:动态规划02)
今天的动态规划都是二维的,与昨日不同。 一、刷题: 1.leetcode题目 62. 不同路径 - 力扣(LeetCode)(medium,) 解决: class Solution:def uniquePaths(self, m: int, n: int) -> int:dp …...
分治与递归
实验一:分治与递归 【实验目的】 深入理解分治法的算法思想,应用分治法解决实际的算法问题。 【实验性质】 验证性实验(学时数:2H) 【实验内容与要求】 1、设有n2k个运动员要进行网球循环赛。现要设计一个满足以…...
Spring中IOC容器
IoC IOC容器 IoC是一种设计思想,面向对象编程 Spring通过IoC管理所有Java对象的实例化和初始化,控制对象之间依赖关系 将IoC容器管理的Java对象称为Spring Bean,与new创建的对象没有区别 控制反转(IoC Inversion of Controle&a…...
php redis分布式锁
一,概念 在PHP中实现分布式锁通常可以使用数据库、缓存系统(如Redis)或者其他中央存储系统来保证在分布式系统中的数据一致性与同步。秒杀下单、抢红包等等业务场景,都需要用到分布式锁。 常规方案大概有七中 方案一:…...
kotlin 中的布尔
1、kotlin中内置的Boolean类型,可以有true与false两个值的布尔对象。 布尔值的内置运算有(跟很多语言如java、js一摸一样): ||——逻辑或&&——逻辑与!——逻辑非 fun main() {val a: Boolean trueval b: Boolean fa…...
有哪些ai聊天推荐?简单分享三款
有哪些ai聊天推荐?在当今数字化时代,人工智能(AI)聊天软件已经成为我们日常生活中不可或缺的一部分。无论是与朋友、家人还是同事交流,这些智能聊天软件都能为我们提供极大的便利。那么,市面上有哪些值得推…...
Python第二语言(十、Python面向对象(上))
目录 1. 标记变量的基础类型 2. 初识对象 2.1 使用对象组织数据 3. 成员变量 3.1 类和类成员的定义 3.2 成员变量和成员方法使用 3.3 成员方法的定义语句 4. 类和对象class Clock: def ring(self): 4.1 创建类对象的语法:对象名 类名称() 4.2 用生活中的…...
SolidWorks 2016 SP5安装教程
软件介绍 Solidworks软件功能强大,组件繁多。 Solidworks有功能强大、易学易用和技术创新三大特点,这使得SolidWorks 成为领先的、主流的三维CAD解决方案。 SolidWorks 能够提供不同的设计方案、减少设计过程中的错误以及提高产品质量。SolidWorks 不仅…...
为什么高考志愿只选计算机专业?
刚刚高考结束,不知道各位学弟学妹考的怎么样啊? 高考毕竟是对十二年寒窗苦读的评判,也是很多人改变命运的机会。很多同学每天等待出分的过程很煎熬,既吃不好也玩不好(os:这种同学还挺多的)。 但…...
GPT大模型微调-提高垂直领域回答质量
微调一个大模型并测试微调后的效果是一个很好的学习实践。下面是一个逐步指导,帮助你使用一个较小的预训练大模型进行微调,并测试其效果。我们将使用 Hugging Face 的 Transformers 库和一个较小的预训练模型,如 DistilBERT。这个库非常流行且易于使用。 实现步骤 步骤 1:…...
全网首发-Docker被封后的代理设置教程
最近上交、科大以及阿里的一些docker镜像,好像都因为不可控力导致无法访问。 所以,之前好多正常的一些镜像的打包都会报错: 比如: #1 [internall load build definition from Dockerfile#1transferring dockerfile:972B done#1 D…...
代码随想录算法训练营第五十七天|1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
代码随想录算法训练营第五十七天 1143.最长公共子序列 题目链接:1143.最长公共子序列 确定dp数组以及下标的含义:dp[i][j] :以下标i - 1为结尾的text1,和以下标j - 1为结尾的text2,最长重复子数组长度为dp[i][j]确…...
RocketMQ事务性消息
RocketMQ事务性消息是一定能保证消息发送成功的 事务消息发送步骤: (1)发送方将半事务消息发送至RocketMQ服务端。 (2)RocketMQ服务端将消息持久化之后,向发送方返回ack确认消息已经发送成功。由于消息为…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
