《QT实用小工具·六十三》QT实现微动背景,界面看似静态实则动态

1、概述
源码放在文章末尾

该项目实现了微动背景,界面看似静态实则动态,风动,幡动,仁者心动,所以到底是什么在动?哈哈~

界面会偷偷一点一点改动文字颜色的颜色填充。

虽然是动态,但是慢到难以发觉,最适合大段文字的长期阅读与写作。
不是简单的定时改变的纯色/渐变填充,还可以设置颜色变化边界、颜色数量、角度、渐变比例等。

下面是demo显示:
在这里插入图片描述
项目部分代码如下所示:

#ifndef DYNAMICBACKGROUNDPURE_H
#define DYNAMICBACKGROUNDPURE_H#include "dynamicbackgroundinterface.h"class DynamicBackgroundPure : public DynamicBackgroundInterface
{
public:DynamicBackgroundPure(QWidget *parent,QColor color1=QColor(255, 250, 240),/*花卉白*/QColor color2=QColor(253, 245, 230)/*舊蕾絲色*/);void setColor(QColor color1, QColor color2);void draw(QPainter& painter);protected:void timeout();private:ColorArray c1, c2, c;ColorArray d;ColorDirects a;QColor draw_color;
};#endif // DYNAMICBACKGROUNDPURE_H
#include "dynamicbackgroundpure.h"DynamicBackgroundPure::DynamicBackgroundPure(QWidget* parent, QColor color1, QColor color2): DynamicBackgroundInterface (parent)
{setColor(color1, color2);
}void DynamicBackgroundPure::setColor(QColor color1, QColor color2)
{// 阈值colorToArray(c1, color1);colorToArray(c2, color2);// 设置各种属性for (int i = 1; i <= 4; i++){a[i] = randBool(); // 随机变化方向c[i] = randRange(c1[i], c2[i]); // 初始随机颜色d[i] = intToUnity(c2[i]-c1[i]); // 每次变化的方向,false向1变化,true向2变化if (c[i] == c1[i]) a[i] = true;if (c[i] == c2[i]) a[i] = false;}draw_color = QColor(c[cR], c[cG], c[cB], c[cA]);
}void DynamicBackgroundPure::draw(QPainter &painter)
{painter.save();{// 绘制矩形painter.setBrush(draw_color);painter.drawRect(getGeometry());}painter.restore();
}void DynamicBackgroundPure::timeout()
{// 随机变化int t = randRange(1, 4);c[t] += a[t] ? d[t] : -d[t];if (c[t] == c1[t]) a[t] = true;if (c[t] == c2[t]) a[t] = false;draw_color = QColor(c[cR], c[cG], c[cB], c[cA]);DynamicBackgroundInterface::timeout();
}

源码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python---Numpy万字总结(2)

NumPy的应用&#xff08;2&#xff09; 数组对象的方法 获取描述统计信息 描述统计信息主要包括数据的集中趋势、离散程度和频数分析等&#xff0c;其中集中趋势主要看均值和中位数&#xff0c;离散程度可以看极值、方差、标准差等 array1 np.random.randint(1, 100, 10) …

【linux软件基础知识】如何使用 run_list 字段将任务放入就绪队列中

在给定的代码片段中,struct task_struct 表示内核中任务或进程的进程控制块 (PCB)。 run_list 字段的类型为 struct list_head,这表明它是链表实现的一部分。 run_list字段在Linux内核中常用来表示任务在调度队列中的位置,例如就绪队列或各种优先级队列。 init_task是一个…

单链表经典算法LeetCode--203.移除链表元素(两种方法解)

1.链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;【点击即可跳转】 分析此题提供两种思路&#xff1a; 1.遍历原链表&#xff0c;将值为val的节点释放掉&#xff08;双指针法&#xff09; 定义一个pcur指针指向头节点&#xff0c;定义一个prev指针指向NULL 需要注…

Coursera吴恩达深度学习专项课程01: Neural Networks and Deep Learning 学习笔记 Week 01

Week 01 of Neural Networks and Deep Learning Course Certificate 本文是学习 https://www.coursera.org/learn/neural-networks-deep-learning 这门课的笔记 Course Intro 文章目录 Week 01 of Neural Networks and Deep Learning[0] Welcome to the Deep Learning Spec…

深度学习——前馈全连接神经网络

前馈全连接神经网络 1.导入需要的工具包2.数据导入与数据观察&#xff08;1&#xff09;读取csv的文件信息&#xff1a;&#xff08;2&#xff09;训练数据前5行&#xff08;3&#xff09;打印第一个图&#xff08;4&#xff09;观察数据中的信息&#xff08;5&#xff09;查看…

数据中台:企业数字化转型的桥梁_光点科技

在数字化日益深入企业核心运营的今天&#xff0c;数据中台作为一个关键的信息化架构&#xff0c;正逐渐崭露头角&#xff0c;成为连接企业各部门、优化数据管理和推动业务创新的重要桥梁。 一、数据中台&#xff1a;连接与整合的桥梁 数据中台的核心作用在于连接与整合。传统的…

【计算机毕业设计】基于SSM++jsp的公司员工信息管理系统【源码+lw+部署文档+讲解】

目录 1 绪论 1.1 研究背景 1.2 目的和意义 1.3 论文结构安排 2 相关技术 2.1 SSM框架介绍 2.2 B/S结构介绍 2.3 Mysql数据库介绍 3 系统分析 3.1 系统可行性分析 3.1.1 技术可行性分析 3.1.2 经济可行性分析 3.1.3 运行可行性分析 3.2 系统性能分析 3.2.1 易用性指标 3.2.2 可…

事件高级部分

一&#xff0c;注册事件 即给元素添加事件 1.传统注册方式 2.方法监听注册方式 事件类型&#xff1a;字符串形式&#xff0c;不用带on 可以给一个元素添加多个程序 二.删除事件 1.方式 参数见上文 三.DOM事件流 事件的传播过程叫做事件流 js代码只能获取一个阶段&#xf…

OpenGL导入的纹理图片错位

在OpenGL中导入图片的纹理照片的函数为 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, p_w, p_h, 0, GL_BGR, GL_UNSIGNED_BYTE, pic_data);其中p_w, p_h为图片的宽和高&#xff0c;pic_data为指向图片存储空间的的地址(unsigned char *类型) 在OpenGL中图片默认是4字节对齐的&…

JUC下的BlockingQueue详解

BlockingQueue是Java并发包(java.util.concurrent)中提供的一个接口&#xff0c;它扩展了Queue接口&#xff0c;增加了阻塞功能。这意味着当队列满时尝试入队操作&#xff0c;或者队列空时尝试出队操作&#xff0c;线程会进入等待状态&#xff0c;直到队列状态允许操作继续。这…

HDFS HA 修改nameservice

本例中修改将原来的hdfs-ha 修改为 hdfs-ns 停止HDFS, 防止新的业务操作 等待停止结束 KDE中需要调整的配置项如下图所示 a.搜索栏找到fs.defaultFS&#xff0c;将hdfs://hdfs-ha改为hdfs://hdfs-ns b.搜索栏找到dfs.nameservices&#xff0c;将hdfs-ha改为hdfs-ns c.搜索栏找…

设施农业(大棚种植)远程监控系统设计 STM32+51单片机 含pcb 上下位机源码 原理图

目录 摘要 1. 引言 2. 系统方案 3. 系统硬件设计 4. 系统软件设计 5. 系统创新 6. 评测与结论 7、实物图 8、原理图 ​9、程序 10、资料内容 资料下载地址&#xff1a;设施农业(大棚种植)远程监控系统设计 STM3251单片机 含pcb 上下位机源码 原理图 论文 摘要 …

FileLink跨网文件传输医疗行业解决方案

随着医疗行业的快速发展&#xff0c;医疗机构之间的信息共享和文件传输需求日益增加。然而&#xff0c;由于网络环境的复杂性和数据安全性的要求&#xff0c;传统的文件传输方式已经无法满足医疗行业的需求。为此&#xff0c;我们推出了FileLink跨网文件传输医疗行业解决方案&a…

【NTN 卫星通信】参考卫星集成场景和架构

1 卫星接入场景 1.1 同一PLMN内的卫星和地面接入网 一个PLMN可以同时具有地面3GPP接入和卫星3GPP接入。在此场景中&#xff0c;单独的N2实例处理单独的访问类型节点。然而&#xff0c;卫星接入网的覆盖范围可以跨越地面接入网的覆盖范围。 图1 同PLMN架构下的卫星和地面3GPP接…

基于51单片机的多路温度检测调节串口传输系统

基于51单片机的多路温度检测调节 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.采用四个DS18B20温度传感器测温,LCD1602显示四路温度值; 2.三个按键可以设置温度上下限; 3.当每路温度值超过设定的上或下限时,蜂鸣器报警,对应的指示灯亮;…

【PHP【实战版】系统性学习】——登录注册页面的教程,让编写PHP注册变成一个简单的事情

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

无人机+通信中继:短波电台技术详解

随着无线通信技术的不断发展&#xff0c;无人机作为一种新型的信息传输平台&#xff0c;已经在多个领域得到了广泛应用。其中&#xff0c;无人机与短波电台的结合&#xff0c;为通信中继领域带来了全新的可能性。本文将详细解析无人机在通信中继中的应用&#xff0c;以及短波电…

sentinel搭建及使用

1.添加依赖&#xff08;版本可依赖于父pom&#xff09; SentinalResource注解&#xff1a; 添加依赖&#xff1a; blockhandler: fallback:

简易留言板

目录 前端实现 数据库的使用 创建数据表 创建项目 连接数据库 后端实现 接口定义 持久层 业务逻辑层 控制层 前端代码完善 留言板是一个常见的功能&#xff0c;在本篇文章中&#xff0c;将实现一个简易的留言板&#xff1a; 页面中能够显示所有留言内容&#xff0c…

《视觉十四讲》例程运行记录(6)——运行ch9后端优化CeresBA和g2o求解BA的实践例程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、运行ch9的例程代码1. MeshLab安装2. 编译例程代码前的修改3. 编译例程 一、运行ch9的例程代码 1. MeshLab安装 (1) 软件中心安装 搜索&#xff1a;MeshLab&am…