九、QChart图表、QPropertyAnimation属性动画
1、QChart图表在UI设计器里使用图表以及相应属性的学习QChart比较特殊在安装Qt Creator要选择QChart模块来安装否则的话写程序的话是找不到QChart模块。图表示例新建项目-修改界面大小800 480把模块添加之后要构建ctrlb一下。类引入那怎么在UI设计器里面添加QChart呢但是UI里面没有这个控件啊那我们怎么使用图表呢因为UI里面的图标是空的没有内容他只是一个视图所以我们要给他创建一个图表。以下内容是整个的Demo我们每行代码都有注释为了方便我们来理解它在不明白的方法里我们要经常去借助帮助文档或者是ctrl点击进入它的方法里面找到相应都有什么参数。//widget.cpp #include widget.h #include ui_widget.h #include QValueAxis //引入坐标轴类 #include QSplineSeries //引入曲线类 //#include QLineSeries //引入折线 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui-setupUi(this); //1.创建一个图表视图因为要把图表放到图表视图里面去但是我们已经有了(就是提升类那个操作)就不用去创建了 假设没有像下面这么写 //QChartView *chartView new QChartView(); //2.创建一个图表 QChart *chart new QChart(); //3.创建坐标轴 QValueAxis *ValueAxisX new QValueAxis(); QValueAxis *ValueAxisY new QValueAxis(); //4.设置坐标轴的范围 ValueAxisX-setRange(0, 5000); ValueAxisY-setRange(0, 100); //5.设置坐标轴的标题和显示的格式 ValueAxisX-setTitleText(时间/ms); ValueAxisY-setTitleText(温度/度); ValueAxisX-setLabelFormat(%d); ValueAxisY-setLabelFormat(%d); //设置XY 显示的格子 ValueAxisX-setTickCount(11); ValueAxisY-setTickCount(11); //6.图表添加坐标轴 chart-createDefaultAxes();//就是说图表有坐标轴会删除再添加我们创建的坐标轴也可以不写 chart-addAxis(ValueAxisX, Qt::AlignBottom); chart-addAxis(ValueAxisY, Qt::AlignLeft); //7.设置图表的标题 以及图例显示是否需要 chart-setTitle(温度与时间曲线); chart-legend()-setVisible(false);//图例显示不可见true用来区分多个曲线我们可以设置图例的标题 //8.创建曲线对象添加它的点设置曲线的颜色 QSplineSeries *splineSeries new QSplineSeries(); splineSeries-append(0, 50); splineSeries-append(1000, 60); splineSeries-append(2000, 80); splineSeries-append(3000, 50); splineSeries-append(4000, 30); splineSeries-append(5000, 80); QPen pen(QColor(0xff5566)); splineSeries-setPen(pen); //9.视图添加曲线 chart-addSeries(splineSeries); //10.!!!将曲线的数据与坐标轴相连注意这个要在图表添加曲线之后 //附属到坐标轴上面去 splineSeries-attachAxis(ValueAxisX); splineSeries-attachAxis(ValueAxisY); //11.将图表放置于图表视图里面 ui-chartView-setChart(chart); } Widget::~Widget() { delete ui; }最后执行的效果是2、QPropertyAnimation属性动画介绍属性动画的使用1几何动画2颜色动画3不透明动画新建项目将动画类的头文件添加进来因为我们有三个对象所以要生成三个才行。我们用三个按钮来触发三个动画文本分别设置为几何动画、颜色动画、不透明度动画再将他们垂直布局。2.1 几何动画动画师作用于一个物体上的程序上理解为一个对象给他一个Widget并将它的背景颜色设置为红色。有了对象之后我们要实例化这里我们执行一下就能实现点击几何动画按钮红色Widget从左上角滑动到右下角并且渐渐变大再次点击又会再次从左上角来到右下角渐渐变大执行效果点击效果假设我们想设置这个动画的循环周期、缓和曲线、某个时刻的位置。2.2 颜色动画我们COPY红色的Widget修改它的对象名字为colorWidget并修改它的样式表背景颜色为蓝色设置完之后我们ctrlb构建一下。我们不能直接设置它的颜色属性类似这样要通过一个对象间接设置它的颜色因为颜色的属性并不是Widget里面所拥有的。我们用另外一个类来设置(#include QGraphicsColorizeEffect)我们给它一个对象2.3 不透明度动画与颜色动画一样的因为Widget的不透明度不是直接在物体上的而是通过另外一个对象来设置的。我们再COPY一份Widget修改对象的名字为opacityWidget并修改它的样式表背景颜色为yellow。Ctrlb构建一下。引入头文件#include QGraphicsOpacityEffect它应用在哪里颜色的动画可以做一些呼吸灯不透明度可以做动画的切换效果或者是按钮按下的颜色。3、Q_PROPERTY宏简介非常有用。新建一个项目然后再新建一个类这时我们执行会报错因为只是声明了没有定义这个函数。我们定义一下然后我们加个打印我们再执行一下当然我们将这里注释掉也是可以的。我们给Rich的界面设置的好一点界面高度设为80拖进来一个Label将这个对象的名字改为moneyLabel属性里面修改它的大小25粗体文本改为0对齐水平居中然后点击Widget进行水平布局。效果如下然后我们构建一下Ctrlb。接下来我们再加一个接口富人不可能挣500万。我们转到它的定义函数这里还有另外一种方法4、自定义属性动画关键点就是要 会 宏Q_PROPERTY。我们新建一个项目将上一讲的项目的rich.cpp rich.h rich.ui添加到新建项目的根目录里面。好了我们开始启动动画了。

相关新闻

Unity游戏集成DeepSeek-OCR-2:实现AR文字识别与游戏逻辑联动

Unity游戏集成DeepSeek-OCR-2:实现AR文字识别与游戏逻辑联动

1. 项目概述:当游戏世界“读懂”现实文字作为一名在Unity游戏开发一线摸爬滚打了十多年的老鸟,我见过太多试图连接虚拟与现实的交互设计。从早期的二维码扫描到后来的AR图像识别,技术一直在演进,但总感觉隔着一层纱——不够自然&a…

2026/10/3 6:14:08 阅读更多 →
铌酸锂波导和频技术:原理、工艺与应用

铌酸锂波导和频技术:原理、工艺与应用

1. 铌酸锂波导和频技术概述铌酸锂(LiNbO₃)波导和频技术是当前集成光子学领域最具突破性的研究方向之一。这种技术利用铌酸锂晶体优异的非线性光学特性,通过精密设计的波导结构实现高效的光频转换。我在实验室第一次接触这种材料时&#xff0…

2026/10/11 9:12:14 阅读更多 →
区块链钱包开发新范式:如何用原生技术打造下一代Web3入口

区块链钱包开发新范式:如何用原生技术打造下一代Web3入口

区块链钱包开发新范式:如何用原生技术打造下一代Web3入口 元链科技下一代Web3钱包不再只是“存钱的工具”,而是正进化为一个可编程的操作系统、AI代理的支付层,以及普通用户的无感入口。这场变革由三大原生技术驱动:可执行资产&am…

2026/10/4 23:08:23 阅读更多 →

最新新闻

Slicer 在 GNU/Linux 下的 C++ 调试实战:GDB 附加、执行器环境与 Core 转储分析

Slicer 在 GNU/Linux 下的 C++ 调试实战:GDB 附加、执行器环境与 Core 转储分析

医疗健康图像处理数据可视化桌面应用3D渲染 【免费下载链接】Slicer Multi-platform, free open source software for visualization and image computing. 项目地址: https://gitcode.com/gh_mirrors/sl/Slicer 点击查看 免费下载 本文基于 Slicer 官方文档 Docs/…

2026/10/13 13:59:47 阅读更多 →
基于向量数据库与感知哈希的本地视频检索与去重

基于向量数据库与感知哈希的本地视频检索与去重

简介:这是一款基于脚本语言实现的JAV元数据爬取与管理工具,面向需要自动化采集、整理视频站点数据的开发者和自建媒体库用户,核心是解决资源分散、检索不便的问题。项目具备在线播放、全自动爬取下载上传处理能力,视频与图片数据不…

2026/10/13 13:59:47 阅读更多 →
目标跟踪评估指标详解:从中心位置误差到成功率曲线的MATLAB实现

目标跟踪评估指标详解:从中心位置误差到成功率曲线的MATLAB实现

做目标跟踪的同学应该都有过这种感觉:算法自己跑起来看着“挺稳的”,框跟得很顺,偶尔目标晃两下也能拉回来。但一旦放到公开评测集上跑一遍,看到排名表上那些指标,心里落差很大。这不是算法不行,而是你还没…

2026/10/13 13:59:47 阅读更多 →
如何给AI Agent仪表盘上锁:TenacitOS认证、登录限流与安全终端机制源码剖析

如何给AI Agent仪表盘上锁:TenacitOS认证、登录限流与安全终端机制源码剖析

前端AI 应用数据可视化 【免费下载链接】tenacitOS OpenClaw Mission Control Dashboard 项目地址: https://gitcode.com/gh_mirrors/te/tenacitOS 点击查看 免费下载 TenacitOS 是面向 OpenClaw AI Agent 实例的 Mission Control 仪表盘(AI Agent 仪表…

2026/10/13 13:59:47 阅读更多 →
Apache Atlas安装部署全攻略:HBase、Solr、Kafka一次搞定

Apache Atlas安装部署全攻略:HBase、Solr、Kafka一次搞定

看到“Atlas安装详解”这个话题,我猜你多半和我当初一样:翻着官方文档,看着满屏的英文配置项,感觉下载个包、解压、启动就完事了。结果真正动手才意识到,Atlas本身只是一个“协调者”,它背后要拉起来HBase、…

2026/10/13 13:59:47 阅读更多 →
统一多模型API网关litellm实战:从配置到生产部署

统一多模型API网关litellm实战:从配置到生产部署

这段时间我一直在做一个内部的多模型调度平台,见得最多的一个词就是 litellm。它不是一个具体的大模型,也不是某个框架的插件,而是一个把各种模型 API 统一成一套格式的网关层工具。说白了,你只需要学会接一个服务,剩下…

2026/10/13 13:58:46 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →