qt常用控件--04

文章目录

  • qt常用控件
    • label
    • LCD Number
    • ProgressBar
    • 结语

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!!
在这里插入图片描述
今天我们进一步c++11中常见的新增表达
作者:٩( ‘ω’ )و260
我的专栏:qt,Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

qt常用控件

label

在上篇文章我们已经讲解了label中的PixMap属性和scaledContents属性,
这里先创建4个label并给这些label设置好对应的边框,分别对于不同属性进行验证:

对齐方式:
水平垂直方向居中对齐:
在这里插入图片描述
如果我想同时具有这两个属性呢?
这里就不是跟跟设置快捷键的方式一样直接使用 + 了,这里需要使用按位或(|),来看:
在这里插入图片描述
那这里为什么是使用|呢?为什么不使用按位与呢?来看底层:
在这里插入图片描述
我们将常用的属性转换成二进制来看:
在这里插入图片描述
转换成二进制之后,当们如果想使用多种属性结合的话,使用按位或就能够同时将属于该两个位置的标记位设置成1(见1为1),这种设计方式颇具位图的思想了

自动换行:
在这里插入图片描述
我们来设置自动换行属性:
在这里插入图片描述
缩进:
在这里插入图片描述
这里我们设置缩进传递的参数是一个整形,代码前方缩进多少个像素。

细节:这里的缩进也会使换行的文本缩进,即label中的所有文本都会缩进,不同于css,label-indent只有第一行会缩进

边距:
这里我们主要来测试margine,indent只有两个方向上会缩进,但是margine会四个方向缩进:
在这里插入图片描述
label设置伙伴:
我们使用checkbox,当我们选择这个label的时候,此时这个checkbox也会被选择:
来看代码:
在这里插入图片描述
我们构建项目,会发现此时label都点击不了,但是我们可以使用快捷键对其进行点击:按下alt + a或者alt + b就能够对文本进行点击。此时建立伙伴关系的单选,复选按钮就会被点击:

注意:label的快捷键和PushButton的快捷键相差较大:前者文本必须设置&一个字母,使用快捷键必须使用alt + 该字母,而且,只能写一个字母,但是PushButton的快捷键就会比较宽松了

LCD Number

这个属性主要是用来显示数字和对数字进行操作~~

先来看api接口:
在这里插入图片描述
其实上面最重要的就是使用纯代码的形式设计数字不是使用setXXX,而是使用display接口,这里需要注意。

这里我们写一个关于计时器的案例:来看代码:
首先,我们来思考,既然是计时器,那么QLCDNumber显示的时间肯定是需要周期性的变化的,即每秒钟value数值需要减1。在qt中,有一个内置的类QTimer中有一个timeout信号,能够完成这样的周期性的操作

细节:使用QTimer时,肯定是需要先建立信号与槽的连接,随后再来开启定时器,而且,在槽函数中需要手动关闭定时器,所以应该创建一个QTimer的成员变量

为什么需要关闭定时器呢?因为不关闭定时器,一直执行周期性的动作,当数值减到0,此时计时器就会变成负数~~

我们先来看示例:
在这里插入图片描述
来看结果:
在这里插入图片描述
我们发现确实是每隔一秒,打印了一次日志,我们来完善槽函数
在这里插入图片描述
这样我们就实现了一个定时器功能了

我们再来想,能不能还有其他方式来设置定时器呢?比如:先睡眠一秒,随后再来修改显示屏上的数字。
首先,在qt中没有Sleep这个函数,Sleep是windows提供的api接口,vs是使用msvc编译器,所以可以使用windows提供的接口,但是qt使用的是Mingw编译器,但是在c++11中提供了sleep_for接口,也能实现和Sleep中类似的效果:
我们来看一下这个代码:
这里我们不重点看语法,因为我们linux线程还没有讲解:
在这里插入图片描述
我们来运行程序:
我们发现这次运行的时间比上次运行的时间更久,最后界面弹出来计时器时间直接为0了:
在这里插入图片描述
这个是什么原因呢?
我们来看,我们的休眠是在Widget的构造函数中执行的,即只有我们退出循环,此时构造函数才能够结束,而且我们界面的展示是在构造函数完成之后再来进行展示的,即其实计时器在正常工作,只是界面没有打印出来:
在这里插入图片描述
那我们如何解决呢?
我们再来创建一个新的线程,在新的线程中我们来完成休眠操作,这是界面就能够来显示了:
在这里插入图片描述
在构造函数中,我们创建了一个线程,创建了一个线程之后,构造函数就继续向下执行,随后就能够展示界面了。
来看结果:
在这里插入图片描述
我们发现程序异常终止了,这个是什么原因呢?

结论:在qt中,只能够由主线程(main函数)去修改Widget界面的内容,如果使用其他线程去修改界面的内容,程序就会直接终止,并且,信号与槽默认就是在主线程中进行调用的~~

所以,如果需要执行周期性的操作,还是推荐使用QTimer这个类中的timeout信号,别忘了打开和关闭定时器,而且需要挂到对象树上~~

ProgressBar

作用:告诉用户需要等待~~
在这里插入图片描述
api接口:
在这里插入图片描述
我先前面学习了QTimer来来执行周期性的执行同一个操作,那我们可以使用QTimer和ProgressBar结合,来慢慢增大这个进度条。
来看代码:
在这里插入图片描述
来看结果:
在这里插入图片描述
此时进度条就会慢慢的从0增长至100了~~

结语

今天的内容就分享到这里,不足之处欢迎留言之指出,感谢大家支持!!
锲而舍之,朽木不折;锲而不舍,金石可镂!!
在这里插入图片描述

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

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

相关文章

Redmine:一款基于Web的开源项目管理软件

Redmine 是一款基于 Ruby on Rails 框架开发的开源、跨平台、基于 Web 的项目管理、问题跟踪和文档协作软件。 Redmine 官方网站自身就是基于它构建的一个 Web 应用。 功能特性 Redmine 的主要特点和功能包括: 多项目管理: Redmine 可以同时管理多个项…

FPGA FMC 接口

1 FMC 介绍 FMC 接口即 FPGA Mezzanine Card 接口,中文名为 FPGA 中间层板卡接口。以下是对它的详细介绍: 标准起源:2008 年 7 月,美国国家标准协会(ANSI)批准和发布了 VITA 57 FMC 标准。该标准由从 FPGA 供应商到最终用户的公司联盟开发,旨在为位于基板(载卡)上的 …

C++中std::atomic_bool详解和实战示例

std::atomic_bool 是 C 标准库中提供的一种 原子类型,用于在多线程环境下对布尔值进行 线程安全的读写操作,避免使用 std::mutex 带来的性能开销。 1. 基本作用 在多线程环境中,多个线程同时访问一个 bool 类型变量可能会出现 竞态条件&…

深度学习之分类手写数字的网络

面临的问题 定义神经⽹络后,我们回到⼿写识别上来。我们可以把识别⼿写数字问题分成两个⼦问题: 把包含许多数字的图像分成⼀系列单独的图像,每个包含单个数字; 也就是把图像 ,分成6个单独的图像 分类单独的数字 我们将…

nginx基本使用 linux(mac下的)

目录结构 编译后会有:conf html logs sbin 四个文件 (其他两个是之前下载的安装包) conf:配置文件html:页面资源logs:日志sbin:启动文件,nginx主程序 运行后多了文件:&l…

基于大众点评的重庆火锅在线评论数据挖掘分析(情感分析、主题分析、EDA探索性数据分析)

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍数据采集数据预处理EDA探索性数据分析关键词提取算法情感分析LDA主题分析总结每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 本…

鸿蒙系统(HarmonyOS)应用开发之经典蓝色风格登录页布局、图文验证码

一、项目概述 本项目是一款基于鸿蒙 ArkTS(ETS)开发的用户登录页面,集成了图文验证码功能,旨在为应用提供安全、便捷的用户身份验证入口。项目采用现代化 UI 设计,兼顾用户体验与安全性,适用于多种需要用户…

0.96寸OLED显示屏 江协科技学习笔记(36个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36

Flutter SnackBar 控件详细介绍

文章目录 Flutter SnackBar 控件详细介绍基本特性基本用法1. 显示简单 SnackBar2. 自定义持续时间 主要属性高级用法1. 带操作的 SnackBar2. 自定义样式3. 浮动式 SnackBar SnackBarAction 属性实际应用场景注意事项完整示例建议 Flutter SnackBar 控件详细介绍 SnackBar 是 F…

【C++】头文件的能力与禁忌

在C中,​头文件(.h/.hpp)​​ 的主要作用是声明接口和共享代码,但如果不规范使用,会导致编译或链接错误。以下是详细总结: 一、头文件中可以做的事情 1.1 声明 函数声明(无需inline&#xff…

腾讯 iOA 零信任产品:安全远程访问的革新者

在当今数字化时代,企业面临着前所未有的挑战与机遇。随着远程办公、多分支运营以及云计算的广泛应用,传统的网络安全架构逐渐暴露出诸多不足。腾讯 iOA 零信任产品凭借其创新的安全理念和强大的功能特性,为企业提供了一种全新的解决方案&…

IP5219全集成Type-C移动电源SOC!2.1A快充+2.4A放电,极简BOM方案

产品概述: IP5219是一款集成升压转换器、锂电池充电管 理、电池电量指示和TYPE_C协议的多功能电源管 理SOC,为移动电源提供完整的电源解决方案。 IP5219的高集成度与丰富功能,使其在应用时 仅需极少的外围器件,并有效减小整体方案…

报道称CoreWeave洽谈收购Core Scientific,后者涨超30%

CoreWeave与数字基础设施公司Core Scientific的收购事宜可能在未来几周内敲定交易,前提是双方不出现重大分歧。消息传出后,Core Scientific股价一度暂停交易,随后恢复交易最终收涨逾32%。 AI云服务巨头CoreWeave正与数字基础设施公司Core Sc…

Qt5.15.2实现WebAssembly:2、设置emsdk目录

步骤1 打开QT,编辑,Preference(首选项): 设备,WebAssembly,游览。 找到安装好的emscripten目录,选择。 稍等一会,QT会解析出相应的信息,再点确定。 图中…

SpringMVC--使用RESTFul实现用户管理系统

一、静态页面准备 1. user.css .header {background-color: #f2f2f2;padding: 20px;text-align: center; }ul {list-style-type: none;margin: 0;padding: 0;overflow: hidden;background-color: #333; }li {float: left; }li a {display: block;color: white;text-align: ce…

hello算法_C++_ 最差、最佳、平均时间复杂度

算法的时间效率往往不是固定的,而是与输入数据的分布有关。假设输入一个长度为 的数组 nums ,其中 nums 由从 1 至 n 的数字组成,每个数字只出现一次;但元素顺序是随机打乱的,任务目标是返回元素 的索引。我们可以…

2024考研数一真题及答案

历年数一真题及答案下载直通车 已知函数 f ( x ) ∫ 0 x e cos ⁡ t d t f(x) \int_0^x e^{\cos t} dt f(x)∫0x​ecostdt, g ( x ) ∫ 0 sin ⁡ x e t 2 d t g(x) \int_0^{\sin x} e^{t^2} dt g(x)∫0sinx​et2dt,则( )。 A…

MIT 6.824学习心得(2) 浅谈多线程和RPC

上篇文章中我们简单介绍了分布式系统的设计思想以及简单性质,之后用一定篇幅简要介绍了MapReduce这个经典的分布式计算框架的大致工作原理,相信朋友们已经对此有了最基本的理解。在现实场景中,分布式系统的设计初衷是为了解决并发问题&#x…

opensuse/debian grub启动界面太模糊?

现代操作系统或者新电脑使用那么模糊的界面启动,虽然没有什么不良反应,但是多少有点看不过去,这是因为为了保证正常启动做出的适配。而我们可以对其分辨率进行选定。 1 您好,非常感谢您提供的截图。这张图片非常关键&#xff0c…

zookeeper Curator(5):集群架构和集群搭建

文章目录 一、集群架构:Leader-Follower 模式二、核心机制:ZAB 协议三、Leader 选举机制四、集群部署要点五、优势与挑战 Zookeeper 集群是一个由多个 Zookeeper 服务实例组成的分布式协调服务系统, 通过奇数个节点(通常 3、5、7…