Qt-常用的显示类控件
QLabel
QLabel有如下核心属性:


关于文本格式的验证:


其中<b>xxx<b>,就是加粗的意思。
效果:

或者再把它改为markdown形式的:

在markd中,#就是表示一级标题,我们在加上##后,演示效果:

显示图片
先找到一张图片,然后将label设置的和窗口一样大,然后再将图片设置到label中
演示效果:
但是由于图片本身的大小不一定跟窗口一样大,因此我们可以进行一个缩放:
使用
ui->label->setScaledContents(true); // 设置内容缩放

虽然有点惊悚。
但是我们拖动窗口的边框,使其进行缩放:

我们发现多出来的部分,我们的图片并不会进行补齐,也就是不会随着窗口大小的改变而同步的发生改变。
这里就简单说下Qt的事件:
Qt中,表示用户的操作有两类概念,一个是信号,另一个是事件。
当用户拖拽窗口修改窗口大小时,就会触发resize事件(resizeevent)
像resize这样的事件,它是连续变化的。
为了让我们的图片能够跟着窗口的大小的改变而同步变化,我们可以在Widget中重写它的父类QWidget中的resizeevent虚函数。
当我们鼠标拖动窗口改变大小时,这个虚函数就会被反复调用执行。

![]()
其中,这里有一个形参,可以通过它获取到当前窗口的大小,非常有用。

注意:
⽂本对⻬, ⾃动换⾏, 缩进, 边距

QLabel的父类,QFrame,它有一个属性 frameShape,它可以设置边框:
比如这里的Box:
接下来,我们对这四个QLabel分别设置对齐,自动换行,缩进,边距。
文本对齐:
自动换行:
演示:
缩进:

边距:
设置伙伴
1) 创建两个 label 和 两个 radioButton
Qt的中QLabel中的文本是可以指定快捷键的,但是它这里的快捷键规则比QPushButton弱很多。
它是在文本中 & + 一个字符 来表示快捷键
比如 &A 就表示需要键盘上的:alt + A
&B 则:alt + B。
在绑定了伙伴关系后,就可以通过快捷键来选中对应的单选/复选按钮。

设置伙伴关系:

演示:
QLCDNumber
一些核心属性:


设计一个10秒倒计时
实现这个功能的关键:我们得先有一个能周期性触发的定时器。
在Qt中,有一个QTimer类,它的对象我们可以设定一个触发timeout信号的周期时间。
在C++标准库中,没有提供定时器的功能,在boost库中提供了。
代码:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lcdNumber->display(10);timer = new QTimer(this);// 不要在构造函数中就开始,因为此时的Widget还在构造connect(timer,&QTimer::timeout,this,&Widget::handler); // 进行槽函数的连接
}Widget::~Widget()
{delete ui;
}void Widget::handler()
{int val = ui->lcdNumber->intValue();--val;ui->lcdNumber->display(val);if(val <= 0){// 倒计时就结束了timer->stop();}
}void Widget::on_pushButton_clicked()
{ui->lcdNumber->display(10);timer->start(1000); // 每隔1000ms触发一次
}
效果:

注意:
我们也可以通过一个循环 + sleep的方式达到倒计时的效果,但是不能把实现放在构造函数中,因为此时Widget还没构造出来。
在Qt中,维护界面的更新是专门由一个线程去进行的(就是我们的main函数所在的主线程)
对于GUI来说,内部包含了很多的隐藏状态,Qt为了保证修改界面的过程中,不会触发线程安全问题,Qt禁止了其它线程修改界面。

就算是用QTimer这样也还是不要在构造函数中就开始比较好,因为如果构造函数比较大时,我们同样不好把控。
综上,使用定时器是最合理的方案。
QProgressBar
我们可以使用QProgressBar 来表示一个进度条。
它的一些核心属性:
这里的思路跟刚刚的倒计时差不多。

不过这里再扩展一个细节:
关于QTimer这个类,我们在widget.h这个头文件中,我们是没有包含 QTimer这个头文件的。
但是我们依旧可以把它声明出来

而我们一旦要使用这个类,比如实例化对象,调用方法,就必须要包含头文件了:
这是因为C/C++程序的编译速度横向对比Java Python这样的语言是很慢的,原因就是C++的include

只要尽量减少include头文件的个数,就能有效减少编译时间。因此在Qt中,每次创建时,都会在widget.h中默认给我们包含了一个头文件,这个头文件中就前置声明了Qt中的所有内置类,这样就能减少头文件包含。
修改进度条的颜色
修改颜色,同样可以使用QWidget 的 styleSheet 属性
在右侧编辑栏下:
将其修改为:
QProgressBar::chunk {background-color: #FF0000;}
修改完后:

不过我们发现了一个问题,那就是我们的数字在修改完后就跑到左上角去了。
因此需要把 QProcessBar 的 alignment 属性设置为垂直⽔平居中
现在就好了:
QCalendarWidget
QCalendarWidget 可以表示一个日历

核心属性:
还有一些重要的信号:

相关文章:
Qt-常用的显示类控件
QLabel QLabel有如下核心属性: 关于文本格式的验证: 其中<b>xxx<b>,就是加粗的意思。 效果: 或者再把它改为markdown形式的: 在markd中,#就是表示一级标题,我们在加上##后&#x…...
LabVIEW内燃机缸压采集与分析
基于LabVIEW开发的内燃机缸压采集与分析系统结合高性能压力传感器和NI数据采集设备,实现了内燃机工作过程中缸压的实时监测与分析,支持性能优化与设计改进。文中详细介绍了系统的开发背景、硬件组成、软件设计及其工作原理,展现了完整的开发流…...
【Linux学习】【Ubuntu入门】1-7 ubuntu下磁盘管理
1.准备一个U盘或者SD卡(插上读卡器),将U盘插入主机电脑,右键点击属性,查看U盘的文件系统确保是FAT32格式 2.右键单击ubuntu右下角图标,将U盘与虚拟机连接 参考链接 3. Ubuntu磁盘文件:/dev/s…...
VScode clangd插件安装
前提 在VScode中写C代码时,总会用到 C/C 这个插件,也就自然而然地使用了这个插件带来的代码跳转和代码提示功能。但是当代码变地很多时,就会变得非常慢。所以经过调查后弃用C/C 插件的这个功能,使用 clangd 这个插件来提示C代码和…...
【机器学习】- L1L2 正则化操作
目录 0.引言1.正则化的基本思想2.L1 正则化3.L2 正则化4.L1 与 L2 正则化的比较5.应用:控制模型复杂度6.超参数 λ \lambda λ 的选择7.总结 0.引言 在机器学习中,正则化是一种通过约束模型参数来控制模型复杂度的技术。它可以有效减少过拟合ÿ…...
Logback实战指南:基础知识、实战应用及最佳实践全攻略
背景 在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战&#…...
基于python的机器学习(三)—— 关联规则与推荐算法
目录 一、关联规则挖掘 1.1 基本概念 1.2 Apriori算法 1.2.1 Apriori算法的原理 1.2.2 Apriori算法的实例 1.2.3 Apriori算法的程序实现(efficient-apriori模块) 1.3 FP-Growth算法 1.3.1 FP-Growth算法的原理 1.3.2 FP-Growth算法的实例 二、…...
【大模型】LLaMA: Open and Efficient Foundation Language Models
链接:https://arxiv.org/pdf/2302.13971 论文:LLaMA: Open and Efficient Foundation Language Models Introduction 规模和效果 7B to 65B,LLaMA-13B 超过 GPT-3 (175B)Motivation 如何最好地缩放特定训练计算预算的数据集和模型大小&…...
模拟器多开限制ip,如何设置单窗口单ip,每个窗口ip不同
很多手游多开玩家都是利用安卓模拟器实现手游多开,但是很多手游会限制ip,导致多开之后封号等问题,模拟器本身没有更换IP的功能,就需要通过第三方软件来实现 安卓模拟器概述 雷电模拟器、夜神模拟器、mum模拟器等都是目前市场上比较…...
hive的存储格式
1) 四种存储格式 hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。 Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET 第一类:纯文本文件存储 textfile: 纯文本文件存储格式…...
鸿蒙学习高效开发与测试-应用程序框架(3)
文章目录 1、应用程序框架1、规范化后台进程管理2、原生支持分布式3、支持多设备的统一窗口管理4、 组件共享及面向对象5、逻辑与界面解耦6、灵活扩展机制2、HarmonyOS SDK1、 开放能力 Kit2、开放能力的检索和使用3、 方舟工具链4、前端编译器架构1、应用程序框架 应 用 程 序…...
什么命令可以查看数据库中表的结构
1. MySQL 查看表结构 sql 复制代码 DESCRIBE 表名; 或者: sql 复制代码 SHOW COLUMNS FROM 表名; 更详细的表信息 sql 复制代码 SHOW CREATE TABLE 表名; 2. PostgreSQL 查看表结构 sql 复制代码 \d 表名 列出表的字段及类型 sql 复制代码 SELECT column_name, da…...
django基于python 语言的酒店推荐系统
摘 要 酒店推荐系统旨在提供一个全面酒店推荐在线平台,该系统允许用户浏览不同的客房类型,并根据个人偏好和需求推荐合适的酒店客房。用户可以便捷地进行客房预订,并在抵达后简化入住登记流程。为了确保连续的住宿体验,系统还提供…...
【深度学习|onnx】往onnx中写入训练的超参或者类别等信息,并在推理时读取
1、往onnx中写入 在训练完毕之后,我们先使用torch.onnx.export() 导出onnx模型,然后我们再使用以下代码来往metadata中写入信息: # Metadatad {# stride: int(max(model.stride)),names: model.names,mean : [0,0,0],std : [1,1,1],normali…...
WebSocket详解、WebSocket入门案例
目录 1.1 WebSocket介绍 http协议: webSocket协议: 1.2WebSocket协议: 1.3客户端(浏览器)实现 1.3.2 WebSocket对象的相关事宜: 1.3.3 WebSOcket方法 1.4 服务端实现 服务端如何接收客户端发送的请…...
05_Spring JdbcTemplate
在继续了解Spring的核心知识前,我们先看看Spring的一个模板类JdbcTemplate,它是一个JDBC的模板类,用来简化JDBC的操作。 接下来以实际来进行说明 一、实例环境准备 数据库及表准备 我们在本地mysql中新增一个数据库test,并新增一张数据表:user create database if not…...
Bug:引入Feign后触发了2次、4次ContextRefreshedEvent
Bug:引入Feign后发现监控onApplication中ContextRefreshedEvent事件触发了2次或者4次。 【原理】在Spring的文档注释中提示到: Event raised when an {code ApplicationContext} gets initialized or refreshed.即当 ApplicationContext 进行初始化或者刷…...
最新VSCode保姆级安装教程(附安装包)
文章目录 一、VSCode介绍 二、VSCode下载 下载链接:https://pan.quark.cn/s/19a303ff81fc 三、VSCode安装 1.解压安装文件:双击打开并安装VSCode 2.勾选我同意协议:然后点击下一步 3.选择目标位置:点击浏览 4.选择D盘安装&…...
layui 表格点击编辑感觉很好用,实现方法如下
1. 在 HTML 页面中引入 layui 的相关资源文件:html <link rel"stylesheet" href"https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> <script src"https://cdn.staticfile.org/layui/2.5.6/layui.js"></script&…...
三十一、构建完善微服务——API 网关
一、API 网关基础 系统拆分为微服务后,内部的微服务之间是互联互通的,相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能,也采取点对点的方式,则外部系统会非常“头大”。因为在外部系统看来,它不需要也没…...
Neeshck-Z-lmage_LYX_v2入门到精通:从环境启动到生成高清大图的完整指南
Neeshck-Z-lmage_LYX_v2入门到精通:从环境启动到生成高清大图的完整指南 1. 引言:开启你的AI绘画之旅 想象一下,你有一台神奇的画布,只需输入文字描述,就能在几分钟内生成专业级的高清图像。Neeshck-Z-lmage_LYX_v2正…...
GLM-OCR入门教程:3步完成Ubuntu20.04环境部署与首次调用
GLM-OCR入门教程:3步完成Ubuntu20.04环境部署与首次调用 你是不是也遇到过这种情况:手头有一堆图片,里面全是文字信息,比如扫描的文档、截图的聊天记录,或者拍下来的白板内容。一个个手动敲键盘录入?太费时…...
Vue3+TinyMCE6实战:手把手教你开发带目录导航的富文本编辑器(附完整代码)
Vue3TinyMCE6实战:构建智能目录导航的富文本编辑器 在当今内容驱动的应用开发中,富文本编辑器已成为不可或缺的核心组件。而TinyMCE作为业界领先的WYSIWYG编辑器,其6.x版本带来了更现代化的架构和更强大的扩展能力。本文将带您从零开始&#…...
信贷风控必看:WOE分箱从原理到落地(含Python实现与业务解释)
信贷风控中的WOE分箱:原理、实践与业务价值解析 在金融风控领域,数据科学家们常常需要将连续变量转化为离散区间,这个过程被称为"分箱"或"分桶"。而WOE(Weight of Evidence)分箱则是信用评分卡开发…...
SmolVLA效果对比:不同RTX显卡(4090/3090)下推理延迟与显存占用
SmolVLA效果对比:不同RTX显卡(4090/3090)下推理延迟与显存占用 1. 引言:为什么关心显卡性能? 如果你正在研究或部署机器人视觉-语言-动作模型,可能已经听说过SmolVLA。这个只有5亿参数的紧凑模型…...
Axure高保真数据中台原型实战:从零搭建企业级数据治理系统(附源文件下载)
Axure高保真数据中台原型实战:从零搭建企业级数据治理系统 在数字化转型浪潮中,数据中台已成为企业构建数据驱动能力的核心基础设施。但对于大多数产品团队而言,如何将抽象的数据治理理念转化为可落地的可视化方案,往往成为项目推…...
translategemma-4b-it多场景延伸:结合Whisper实现音视频字幕+画面图文翻译
translategemma-4b-it多场景延伸:结合Whisper实现音视频字幕画面图文翻译 1. 引言:从图文翻译到音视频全栈处理 想象一下这个场景:你拿到一段英文技术分享视频,想快速了解内容,但字幕是英文的,画面里偶尔…...
计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App 基于Spring Boot的移动端在线作业管理系统的设计与开发 面向移动设备的线上作业系统开发:基于Spring Boot
计算机毕业设计springboot面向移动端的线上作业系统的设计与实现App_t6302 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着移动互联网的快速发展,传统的教学模式…...
Qwen3-Reranker-0.6B部署教程:NVIDIA Jetson边缘设备低功耗运行实测
Qwen3-Reranker-0.6B部署教程:NVIDIA Jetson边缘设备低功耗运行实测 1. 引言:为什么要在边缘设备上跑重排序模型? 如果你用过RAG(检索增强生成)系统,肯定遇到过这种情况:系统给你找回来一堆文…...
探索相场锂枝晶:形状、形核与生长的奇妙旅程
相场锂枝晶—形状形核生长枝晶在锂电领域,相场锂枝晶的研究可是个热门话题。锂枝晶的形状、形核与生长,直接关系到锂电池的性能与安全,就像建筑物的基石,影响着整个“锂电大厦”的稳固。 相场法简述 相场法是研究这类问题的得力工…...
