(动画)Qt控件 QLCDNumer

文章目录

  • LCD Number
    • 1. 介绍
    • 2. 核心属性
    • 3 . 代码实现:倒计时
      • 1. 在界⾯上创建⼀个 QLCDNumber , 初始值设为 10.
      • 2. 修改 widget.h 代码, 创建⼀个 QTimer 成员, 和⼀个 updateTime 函数
      • 3. 修改 widget.cpp, 在构造函数中初始化 QTimer
      • 4. 修改 widget.cpp, 实现 updateTime
    • 4. 动画展示

LCD Number

1. 介绍

在Qt中,QLCDNumber 是一个用于显示数字的控件,它模仿了传统的LCD(液晶显示器)显示方式。QLCDNumber 通常用于显示数字信息,如计时器、计数器或其他数值数据。
lcd

2. 核心属性

属性说明
intValueQLCDNumber 显⽰的数字值(int)
valueQLCDNumber 显⽰的数字值(double)和 intValue 是联动的.
例如给 value 设为 3.5, intValue 的值就是 4.
digitCount显⽰⼏位数字
mode数字显⽰形式
1. QLCDNumber::Dec :⼗进制模式,显⽰常规的⼗进制数字
2. QLCDNumber::Hex :⼗六进制模式,以⼗六进制格式显⽰数字。
3. QLCDNumber::Bin :⼆进制模式,以⼆进制格式显⽰数字。
4. QLCDNumber::Oct :⼋进制模式,以⼋进制格式显⽰数字
只有⼗进制的时候才能显⽰⼩数点后的内容.
segmentStyle设置显⽰⻛格. .
1. QLCDNumber::Flat :平⾯的显⽰⻛格,数字呈现在⼀个平坦的表⾯上。
2. QLCDNumber::Outline :轮廓显⽰⻛格,数字具有清晰的轮廓和阴影效果。
3. QLCDNumber::Filled :填充显⽰⻛格,数字被填充颜⾊并与背景区分开。
smallDecimalPoint设置⽐较⼩的 ⼩数点.

3 . 代码实现:倒计时

1. 在界⾯上创建⼀个 QLCDNumber , 初始值设为 10.

led

2. 修改 widget.h 代码, 创建⼀个 QTimer 成员, 和⼀个 updateTime 函数

QTimer* timer;
void updateTime();

3. 修改 widget.cpp, 在构造函数中初始化 QTimer

• QTimer 表⽰定时器. 通过 start ⽅法启动定时器之后, 就会每隔⼀定周期, 触发⼀次
QTimer::timeout 信号.
• 使⽤ connect 把 QTimer::timeout 信号和 Widget::updateTime 连接起来, 意味着每
次触发 QTimer::timeout 都会执⾏ Widget::updateTime

Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
// 创建 QTimer 实例
timer = new QTimer(this);
// 连接信号槽. QTimer 会每隔⼀定的时间触发⼀个 timeout 信号. 现在把 timeout 信号
和 updateTime 连接起来.
// 此时意味着每次触发 timeout 信号都会伴随 updateTime 函数的执⾏.
connect(timer, &QTimer::timeout, this, &Widget::updateTime);
// 启动 QTimer, 并且规定每隔 1000ms 触发⼀次 timeout 信号.
timer->start(1000);
}

4. 修改 widget.cpp, 实现 updateTime

• 通过 intValue 获取到 QLCDNumber 内部的数值.
• 如果 value 的值归 0 了, 就停⽌ QTimer . 接下来 QTimer 也就不会触发 timeout 信号了

void Widget::updateTime() {
qDebug() << "updateTime";
int value = ui->lcdNumber->intValue();
if (value <= 0) {
// 如果时间到, 停⽌定时器.
timer->stop();
return;
}
ui->lcdNumber->display(value - 1);
}
  1. 代码总结
    widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QTimer>
#include <QDebug>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:void updateTime();Ui::Widget *ui;QTimer* timer;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "./ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lcdNumber->display(10);// 创建 QTimer 实例timer = new QTimer(this);// 连接信号槽. QTimer 会每隔⼀定的时间触发⼀个 timeout 信号. 现在把 timeout 信号//和 updateTime 连接起来.// 此时意味着每次触发 timeout 信号都会伴随 updateTime 函数的执⾏.connect(timer, &QTimer::timeout, this, &Widget::updateTime);// 启动 QTimer, 并且规定每隔 1000ms 触发⼀次 timeout 信号.timer->start(1000);
}Widget::~Widget()
{delete ui;
}void Widget::updateTime()
{qDebug() << "updateTime";int value = ui->lcdNumber->intValue();if (value <= 0) {// 如果时间到, 停⽌定时器.timer->stop();return;}ui->lcdNumber->display(value - 1);
}

4. 动画展示

animation

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

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

相关文章

session理解

一、术语session   session&#xff1a;中文经常翻译为 ‘会话’&#xff0c;其本来的含义是指有始有终的一系列动作/消息&#xff0c;比如&#xff1a;打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称为一个session。在阅读技术书籍时我们可能会看到这样的话“在…

Java集合分页

一、前言 在Java开发中&#xff0c;若单次展示的数据量太大&#xff0c;会造成程序响应缓慢&#xff0c;就需要用到分页功能&#xff0c;每一页展示一定量的数据&#xff0c;分多次展示 ... 那么在List集合中&#xff0c;如何实现分页功能呢&#xff1f; 本文将以3种方式&…

【线程】Java多线程编程

【线程】Java多线程编程 一、前言一个最简单的多线程编程示例可以使用的工具 二、创建线程的方式三、Thread类中重要的属性和方法3.1 构造方法3.2 常见属性 一、前言 当有多个线程的时候&#xff0c;这些线程的执行顺序是不确定的。这一点&#xff0c;是我们之前提到的操作系统…

IP转发流程

IP 转发是网络通信中通过中间设备&#xff08;如路由器或启用了转发功能的主机&#xff09;将接收到的 IP 数据包根据路由表的指引发送到目标网络的过程。以下是 IP 转发的详细流程及转发过程中各个环节的说明&#xff1a; IP 转发的流程详解 数据包到达路由器或主机&#xff…

Java技术复习提升 11 常用类

第11章 常用类 1 包装类 不同包装类都继承自Object类 Serialiazble接口表示该类表示序列化 Comparable接口用于定义自然顺序 包装类和基本数据的转换 jdk5之前手动装箱拆箱 jdk5之后自动装箱拆箱 自动装箱底层调用的是valueof方法 拆箱仍然是intvalue方法 public class Inte…

P1 练习卷(C++4道题)

1.纷繁世界 内存限制&#xff1a;256MB 时间限制&#xff1a;1s 问题描述 这是一个纷繁复杂的世界。 某一天清晨你起床很迟&#xff0c;没有吃上早饭。于是你骑着自行车去超市&#xff0c;但是你又发现商店的工作人员已经重新贴上了价格标签&#xff0c;零食价格都涨了50%。你…

STL之哈希

STL之哈希 unordered_set/map&哈希之介绍unordered系列哈希哈希表的模拟实现 unordered_set&/map的模拟实现哈希的应用位图&#xff08;bitmap/bitset&#xff09;布隆过滤器&#xff08;Bloom Filter&#xff09;海量数据处理 unordered_set/map&哈希之介绍 unor…

Selenium的八种定位方式

1. 通过 ID 定位 ID 是最直接和高效的方式来定位元素&#xff0c;因为每个页面中的 ID 应该是唯一的。 from selenium import webdriverdriver webdriver.Chrome(executable_pathpath/to/chromedriver) driver.get(https://example.com)# 通过 ID 定位 element driver.find…

logback动态获取nacos配置

文章目录 前言一、整体思路二、使用bootstrap.yml三、增加环境变量四、pom文件五、logback-spring.xml更改总结 前言 主要是logback动态获取nacos的配置信息,结尾完整代码 项目springcloudnacosplumelog&#xff0c;使用的时候、特别是部署的时候&#xff0c;需要改环境&#…

AwsCredentialsProvider认证接口

一、介绍 1、简介 AwsCredentialsProvider 是 AWS SDK 中用于提供 AWS 身份验证凭证的一个接口。AWS SDK 中涉及身份验证和授权的操作都需要用到凭证,而 AwsCredentialsProvider 作为一种抽象,负责提供这些凭证。AwsCredentialsProvider 在 Java SDK 中尤为重要,它可以用于…

OpenMM的安装与使用

技术背景 OpenMM是一款基于Python开发的开源分子动力学模拟软件&#xff0c;这几年因为AlphaFold的缘故&#xff0c;使得这个软件的热度有了不少提升。并且可以使用GPU硬件加速&#xff0c;所以性能上也不赖。这里介绍一下该软件的基本安装和使用方法&#xff0c;并附带一个真空…

R语言p值矫正整的方法

在 R 语言中&#xff0c;P 值的校正常用于控制多重假设检验中的错误率。以下是常用的 P 值校正方法及其实现方式&#xff1a; 1. p.adjust函数 R 提供了内置的 p.adjust 函数&#xff0c;支持多种校正方法&#xff1a; # 示例数据 p_values <- c(0.01, 0.02, 0.03, 0.04,…

Linux各种并发服务器优缺点

本文旨在介绍针对“无并发C/S模型”改进的方法总结以及各种改进方法的优缺点&#xff0c;具体函数的实现并不介绍。 1. 无并发C/S模型 创建服务器流程分析&#xff1a; socket()创建服务器的监听套接字bind()将服务器给服务器的监听套接字绑定IP地址和Port端口号listen()设置…

项目:从CSV文件中删除标题行

一、项目内容 打开当前工作目录中所有扩展名为.csv的文件&#xff0c;读取CSV文件的内容&#xff0c;并除掉第一行的内容以重新写入同名的文件。 二、代码分析 循环遍历从os.listdir()得到的文件列表&#xff0c;跳过非CSV文件。创建一个CSV reader对象来读取该文件的内容&a…

cookie反爬----普通服务器,阿里系

目录 一.常见COOKIE反爬 普通&#xff1a; 1. 简介 2. 加密原理 二.实战案例 1. 服务器响应cookie信息 1. 逆向目标 2. 逆向分析 2. 阿里系cookie逆向 1. 逆向目标 2. 逆向分析 实战&#xff1a; 无限debugger原理 1. Function("debugger").call() 2. …

网络无人值守批量装机-cobbler

网络无人值守批量装机-cobbler 一、cobbler简介 ​ 上一节中的pxe+kickstart已经可以解决网络批量装机的问题了,但是环境配置过于复杂,而且仅针对某一个版本的操作系统进批量安装则无法满足目前复杂环境的部署需求。 ​ 本小节所讲的cobbler则是基于pxe+kickstart技术的二…

推荐一款开源电子书阅读器Koodo Reader

Koodo Reader 是一个开源的电子书阅读器&#xff0c;支持多达15种主流电子书格式&#xff0c; 内置笔记、高亮、翻译功能&#xff0c;助力高效书籍阅读和学习。 官网地址&#xff1a;https://www.koodoreader.com/zh 一、下载软件 下载地址&#xff1a;https://dl.koodoreader.…

如何理解JS的 异步

JS是一门单线程的语言&#xff0c;这是因为它运行在浏览器的渲染主线程中&#xff0c;而渲染主线程只有一个。 而渲染主线程承担着诸多的工作&#xff0c;渲染页面、执行JS都在其中运行。 如果使用同步的方式&#xff0c;就极有可能导致主线程产生阻塞&#xff0c;从而导致消…

MySQL 数据库命名及SQL语句书写规范详解

MySQL 数据库命名及SQL语句书写规范详解 在软件开发过程中&#xff0c;数据库的设计与SQL语句的编写是确保系统性能和可维护性的关键因素。良好的命名规范和SQL语句书写规范不仅能提高代码的可读性和可维护性&#xff0c;还能有效减少潜在的错误。本文将详细介绍MySQL数据库中…

FreeRTOS——互斥信号量

一、为什么需要互斥信号量 前面的学习中&#xff1a; 调度锁、临界段不可避免的破坏了实时性&#xff0c;还有二值信号量存在这样的隐患——“优先级翻转” 优先级翻转 简单来说&#xff0c;就是由于信号量被低优先级任务占用&#xff0c;即使遇到高优先级任务&#xff0c;它…