【Qt开发】显示类控件——QLCDNumber

news2025/5/24 5:30:29

目录

1,QLCDNumber的说明

2,QLCDNumber的运用


1,QLCDNumber的说明

        QLCDNumer 是一个专门用来显示数字的控件。它类似于 "老式计算器" 的效果。它的核心属性如下:

2,QLCDNumber的运用

定时器

        运用QLCDNumber,往往可能会用到定时器。定时器(Timer)是一种用于安排函数在未来某个时间点执行的机制。它们特别适用于需要定期执行某些任务的情况。

        QTimer是 Qt 中最常用的定时器类。该类创建出来的对象,会产生一个 timeout 这样的信号。该信号可以通过 start 方法来开启定时器,并且参数中设定触发 timeout 信号的周期。

定时器的基本使用步骤如下:

创建一个 QTimer 实例

QTimer* timer = new QTimer(this);

连接定时器的 timeout() 信号到槽函数:

        ​​​​​​​当定时器超时时会发出 timeout() 信号,你可以将这个信号连接到你想要执行的槽函数上。

connect(timer, &QTimer::timeout, this, &Widget::handle);

启动定时器:

        对于一次性定时器,使用 start(int msec) 方法指定毫秒数后启动定时器,之后它只会触发一次 timeout() 信号。

timer->start(1000);  // 1秒后触发

停止定时器:

timer->stop();

        下面来将 QLCDNumber 和QTimer 组合起来运用。

// 设置初始值

ui->lcdNumber->display("10");

// 创建timer定时器

timer = new QTimer(this);

// 把QTimer的timeout信号和自己的槽函数进行连接

connect(timer, &QTimer::timeout, this, &Widget::handle);

// 启动定时器,参数是触发timeout信号的周期,单位是ms(毫秒)

timer->start(1000);

void Widget::handle()

{

    // 先拿到LCDNumber中的数字

    int value = ui->lcdNumber->intValue();

    if (value <= 0) {

        // 数字减到0,停止定时器

        timer->stop();

        return;

    }

    ui->lcdNumber->display(value - 1);

}

        注意:说到定时器可能会想到线程。对于GUI来说,它内部包含了很多隐藏功能,Qt为了保证修改界面的过程中,线程安全是不会受到影响的,所以Qt禁掉了其它线程直接修改界面。如下操作就会报错。

ui->lcdNumber->display("10");

std::thread t([this](){

    int value = ui->lcdNumber->intValue();

    while (true) {

        std::this_thread::sleep_for(std::chrono::seconds(1));

        if (value <= 0) break;

        value -= 1;

        ui->lcdNumber->display(value);   // 该操作就是在修改界面

    }

});

        Qt 为了保证线程安全,直接要求所有的对界面的修改操作必须在主线程中完成。程序入口中的 a.exec 就会使主线程进入 “事件循环”。主线程就是专门负责GUI界面维护更新。

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

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

相关文章

音频AAC编码与RV1126的AENC模块的讲解

一.音频编码的原理 AAC编码的基本概念 AAC&#xff08;Advanced Audio Coding&#xff09;是一种高级音频编码格式&#xff0c;旨在提供比MP3更高的音质和更低的比特率。AAC是MPEG-2和MPEG-4标准的一部分&#xff0c;广泛应用于音乐、视频流媒体和广播等领域 音频为什么要进…

vue页面目录菜单有些属性是根据缓存读取的。如果缓存更新了。希望这个菜单也跟着更新。

父组件中有两个子组件。如果在B组件数据更新之后。A组件也跟着一起改变呢&#xff1f;如图如果我右边基本信息里面勾选了高血压&#xff0c;左侧菜单里面也要立刻出现一个高血压随访菜单&#xff0c;如果我取消勾选了左侧菜单就去掉。 左侧菜单的显示和隐藏的数据实际上是放在…

在TIA 博途中下载程序时找不到对应的网卡怎么办?

1. 检查物理连接 确认网线已正确连接PLC和PC&#xff0c;接口指示灯正常。 尝试更换网线或交换机端口&#xff0c;排除硬件故障。 2. 确认网卡驱动已安装 设备管理器检查&#xff1a; 右键点击“此电脑” → “管理” → “设备管理器”。 展开“网络适配器”&#xff0c;确…

《量子计算实战》PDF下载

内容简介 在加密、科学建模、制造物流、金融建模和人工智能等领域&#xff0c;量子计算可以极大提升解决问题的效率。量子系统正变得越来越强大&#xff0c;逐渐可用于生产环境。本书介绍了量子计算的思路与应用&#xff0c;在简要说明与量子相关的科学原理之后&#xff0c;指…

Linux入门(部分基础相关知识+常用命令+权限)

目录 1.基础背景了解 2、基本操作系统、linux相关知识 1.操作系统是一款用来管理软硬件资源的软件。 2.对于一个文件来说&#xff0c;是由文件内容文件属性构成的。空文件&#xff08;内容为空&#xff09;也占磁盘空间。 3.linux下的目录结构 4.linux下的删除 5.环境 6…

海拔案例分享-实践活动报名测评小程序

大家好&#xff0c;今天湖南海拔科技想和大家分享一款实践活动报名测评小程序&#xff0c;客户是长沙一家专注青少年科创教育的机构&#xff0c;这家机构平时要组织各种科创比赛、培训课程&#xff0c;随着学员增多&#xff0c;管理上的问题日益凸显&#xff1a;每次组织活动&a…

cmd里可以使用npm,vscode里使用npm 报错

cmd里可以使用npm,vscode里使用npm 报错 报错提示原因解决方法 报错提示 npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1&#xff0c;因为在此系 统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/ fwlink/?LinkID135170 中的 about_Executi…

JAVA开发工具延长方案

亲测稳定的延长方案与避坑指南 真的搞不懂了&#xff0c;说点专业的术语竟然成了 QINQUAN。那就直接点&#xff0c;把这个方案带给需要的开发者。 延长工具直通车 保姆级教程 延长方案https://mp.weixin.qq.com/s/uajM2Y9Vz6TnolzcLur_bw还是让大家看看&#xff0c;发什么会被…

CSS 浮动(Float)及其应用

1. 什么是浮动&#xff08;Float&#xff09;&#xff1f; 浮动元素会脱离正常的文档流&#xff08;Document Flow&#xff09;&#xff0c;并向左或向右移动&#xff0c;直到碰到父元素的边缘或另一个浮动元素。 基本语法 .float-left {float: left; }.float-right {float:…

CC53.【C++ Cont】一维前缀和

目录 1.定义 2.作用 3.例题:【模板】一维前缀和 分析 方法1:暴力解法 方法2:前缀和(简单的动态规划) 第一步:预处理 4.练习:P1115 最大子段和 分析 方法1:段长从1枚举到n 方法2:改进方法1 代码 提交结果 1.定义 快速求出数组中某一段的区间和,时间复杂度为(速度极…

YouTube视频字幕转成文章算重复内容吗?

很多创作者误以为「自己说的话不算抄袭」&#xff0c;却不知道YouTube自动生成的字幕早已被搜索引擎存档。 去年就有案例&#xff1a;某美食博主将教程视频字幕转为图文&#xff0c;结果原创度检测仅42%&#xff0c;导致页面权重暴跌。 本文揭秘5个实操技巧&#xff1a;从删除…

网络学习-利用reactor实现http请求(六)

一、实现HTTP请求 1、印象里面&#xff0c;总有人说C/C语言不能实现HTTP请求&#xff0c;其实不然。C/C语言完全可以实现HTTP请求。通过对select,poll,epoll等IO多路复用技术的学习以及reactor模式的学习&#xff0c;完全能够实现HTTP请求。 2、webserver 主要解决两个问题 …

【IC_Design】跨时钟域的寄存器更新后锁存

目录 设计逻辑框图场景概述总结电路使用注意事项***波形图代码 设计逻辑框图 场景概述 最典型的应用场景就是——在一个时钟域&#xff08;比如 CPU/总线域&#xff09;更新了一个多位配置字&#xff0c;需要把它安全地送到另一个时钟域&#xff08;比如时钟发生器、串口、视频…

Java微服务架构:Spring Cloud全栈指南,附最新Demo源码,可独立运行!

在日常java开发中你是不是经常遇到这种问题&#xff1a;开发中不知道要引入什么版本&#xff0c;创建新项目时直接从老工程拷贝引入了一堆杂乱的包&#xff0c;随便升级下其中一个包就导致整个微服务跑不起来&#xff01; 如果你也遇到这种问题&#xff0c;可以认证看下本篇文…

使用LLaMA-Factory微调ollama中的大模型(一)------家用电脑安装LLaMA-Factory工具

前提&#xff1a;本机已安装python&#xff0c;且版本大于3.9&#xff0c;推荐3.10 官方规定如下 我已安装 1.安装torch 查看自己电脑显卡信息 说明我没有装CUDA 使用 nvidia-smi 命令查看驱动信息 说明我NVIDIA 显卡已安装驱动&#xff0c;支持的 CUDA Runtime 版本为 12.6…

支持向量机(SVM):分类与回归的数学之美

在机器学习的世界里&#xff0c;支持向量机&#xff08;Support Vector Machine&#xff0c;简称 SVM&#xff09;是一种极具魅力且应用广泛的算法。它不仅能有效解决分类问题&#xff0c;在回归任务中也有着出色的表现。下面&#xff0c;就让我们深入探索 SVM 如何在分类和回归…

人工智能+:职业价值的重构与技能升级

当“人工智能”成为产业升级的标配时&#xff0c;一个令人振奋的就业图景正在展开——不是简单的岗位替代&#xff0c;而是职业价值的重新定义。这场变革的核心在于&#xff0c;AI并非抢走工作机会&#xff0c;而是创造了人类与技术协作的全新工作范式。理解这一范式转换的逻辑…

JVM部分内容

1.JVM内存区域划分 为什么要划分内存区域&#xff0c;JAVA虚拟机是仿照真实的操作系统进行设计的&#xff0c;JVM也就仿照了它的情况&#xff0c;进行了区域划分的设计。 JAVA进程也就是JAVA虚拟机会从操作系统申请内存空间给进程使用&#xff0c;JVM内存空间划分&#xff0c…

python-leetcode 68.有效的括号

题目&#xff1a; 给定一个只包括“&#xff08;”)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a;左括号必须用相同类型的右括号闭合&#xff1b;左括号必须以正确的顺序闭合&#xff0c…

NLP学习路线图(四):Python编程语言

引言 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;是人工智能领域最引人注目的分支之一。从智能客服到机器翻译&#xff0c;从舆情分析到聊天机器人&#xff0c;NLP技术正在重塑人机交互的边界。本文将结合Python编程语言&#xff0c;带您走进NLP的…