当前位置: 首页 > news >正文

【Qt】:常用控件(四:显示类控件)

常用控件

  • 一.Lable
  • 二.LCD Number

一.Lable

QLabel 可以⽤来显⽰⽂本和图⽚.

在这里插入图片描述

代码⽰例:显⽰不同格式的⽂本

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码⽰例:显⽰图⽚

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

此时,如果拖动窗⼝⼤⼩,可以看到图⽚并不会随着窗⼝⼤⼩的改变⽽同步变化

在这里插入图片描述

为了解决这个问题,可以在Widget中重写resizeEvent函数。当用户把窗口从A拖到B时,就会触发连续的一系列的resizeEvent。

在这里插入图片描述
在这里插入图片描述

此处的 resizeEvent 函数我们没有⼿动调⽤,但是能在窗⼝⼤⼩变化时被⾃动调⽤.
这个过程就是依赖C++中的多态来实现的.Qt框架内部管理着QWidget对象表⽰咱们的窗⼝.在窗⼝⼤⼩发⽣改变时,Qt就会⾃动调⽤ resizeEvent 函数.
但是由于实际上这个表⽰窗⼝的并⾮是QWidget,⽽是QWidget的⼦类,也就是咱们⾃⼰写的Widget.此时虽然是通过⽗类调⽤函数,但是实际上执⾏的是⼦类的函数(也就是我们重写后的resizeEvent ).此处属于是多态机制的⼀种经典⽤法.通过上述过程,就可以把⾃定义的代码,插⼊到框架内部执⾏.相当于"注册回调函数"。

代码⽰例:⽂本对⻬,⾃动换⾏,缩进,边距

QFrame 是 QLabel 的⽗类.其中 frameShape 属性⽤来设置边框性质.
QFrame::Box :矩形边框
QFrame::Panel :带有可点击区域的⾯板边框
QFrame::WinPanel :Windows⻛格的边框
QFrame::HLine :⽔平线边框
QFrame::VLine :垂直线边框
QFrame::StyledPanel :带有可点击区域的⾯板边框,但样式取决于窗⼝主题

在这里插入图片描述

在这里插入图片描述

代码⽰例:设置伙伴

Qt 中, QLabel中写的文本,是可以指定"快捷键"此处快捷键的规则功能上要比QPushButton弱很多.是在文本中使用&跟上一个字符来表示快捷键。比如&A=>通过键盘上的 alt + a来触发这个快捷键.&B=>通过键盘上的 alt + b来触发。绑定了伙伴关系之后,通过快捷键就可以选中对应的单选按钮/复选按钮

在这里插入图片描述

在这里插入图片描述

此处把label中的⽂本设置为"快捷键&A"这样的形式.其中&后⾯跟着的字符,就是快捷键.可以通过alt+A的⽅式来触发该快捷键
但是注意,这⾥的快捷键和 QPushButton 的不同.需要搭配alt和单个字⺟的⽅式才能触发.

在这里插入图片描述

二.LCD Number

QLCDNumer 是⼀个专⻔⽤来显⽰数字的控件.类似于"⽼式计算器"的效果.

在这里插入图片描述

代码⽰例:倒计时

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 上述代码如果直接在Widget构造函数中,通过⼀个循环+sleep的⽅式是否可以呢?显然,这个代码是不⾏的.循环会使Widget的构造函数⽆法执⾏完毕,此时界⾯是不能正确构造和显⽰的.

  2. 上述代码如果是在Widget构造函数中,另起⼀个线程,在新线程中完成循环+sleep是否可以呢?这个代码同样是不⾏的.Qt中规定,任何对于GUI上内容的操作,必须在主线程中完成.像Widget构造函数,以及connect连接的slot函数,都是在主线程中调⽤的.⽽我们⾃⼰创建的线程则不是.当我们⾃⼰的线程中尝试对界⾯元素进⾏修改时,Qt程序往往会直接崩溃.

这样的约定主要是因为GUI中的状态往往是牵⼀发动全⾝的,修改⼀个地⽅,就需要同步的对其他内容进⾏调整.⽐如调整了某个元素的尺⼨,就可能影响到内部的⽂字位置,或者其他元素的位置.这⾥⼀连串的修改,都是需要按照⼀定的顺序来完成的.由于多线程执⾏的顺序⽆法保障,因此Qt从根本上禁⽌了其他线程修改GUI状态,避免后续的⼀系列问题

相关文章:

【Qt】:常用控件(四:显示类控件)

常用控件 一.Lable二.LCD Number 一.Lable QLabel 可以⽤来显⽰⽂本和图⽚. 代码⽰例:显⽰不同格式的⽂本 代码⽰例:显⽰图⽚ 此时,如果拖动窗⼝⼤⼩,可以看到图⽚并不会随着窗⼝⼤⼩的改变⽽同步变化 为了解决这个问题,可以在Widget中重写resizeEvent函数。当用户把窗口从A拖…...

gradio简单搭建——关键词简单筛选【2024-4-11优化】

gradio简单搭建——关键词简单筛选[2024-4-11 优化] 新的思路:标签自动标注界面搭建优化数据处理与生成过程交互界面展示 新的思路:标签自动标注 针对通过关键词,在文本数据中体现出主体的工作类型这一任务,这里使用展示工具grad…...

docker完美安装分布式任务调度平台XXL-JOB

分布式任务调度平台XXL-JOB 1、官方文档 自己看 https://www.xuxueli.com/xxl-job/#1.1%20%E6%A6%82%E8%BF%B0 2、使用docker部署 本人使用的腾讯云,安装docker暴露一下端口,就很舒服的安装这个服务了。 docker pull xuxueli/xxl-job-admin:2.4.03…...

java使用while循环输出2-100的所有素数

使用while循环输出2-100的所有素数,每行输出5个 分析:素数:只能被1和自己整除的自然数 public static void main(String[] args) {int num 2;int count 0;int count1 0;while (num < 100) {for (int i 1; i < num; i) {if (num % i 0) {count;}}if (count 2) {Sys…...

VSCode中调试C++程序

目录 一、准备工作&#xff1a;安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤&#xff0c;直接给自己写个备忘录好了。 一、准备工作&#xff1a;安装插件 1、C/C插件…...

Can Transformer and GNN Help Each Other?

ABSTRACT 尽管 Transformer 在自然语言处理和计算机视觉方面取得了巨大成功&#xff0c;但由于两个重要原因&#xff0c;它很难推广到中大规模图数据&#xff1a;(i) 复杂性高。 (ii) 未能捕获复杂且纠缠的结构信息。在图表示学习中&#xff0c;图神经网络&#xff08;GNN&…...

在隐私计算应用中和数链具备哪些技术特点?

在加速“可信数字化”进程的背景下&#xff0c;我国区块链产业将在打造新型平台经济&#xff0c;开启共享经济新时代的同时&#xff0c;带动数字经济“脱虚向实”服务实体经济。 和数软件在加速数字化进程的同时&#xff0c;进一步服务实体经济&#xff0c;提高实体经济的活力…...

【智能家居入门4】(FreeRTOS、MQTT服务器、MQTT协议、微信小程序)

前面已经发了智能家居入门的1、2、3了&#xff0c;在实际开发中一般都会使用到实时操作系统&#xff0c;这里就以FreeRTOS为例子&#xff0c;使用标准库。记录由裸机转到实时操作系统所遇到的问题以及总体流程。相较于裸机&#xff0c;系统实时性强了很多&#xff0c;小程序下发…...

爬取豆瓣(线程、Session)优化版本

爬取豆瓣&#xff08;线程、Session&#xff09;优化版本 该文章只是为了精进基础&#xff0c;对Session、threading、网站请求解析的理解。 此版本没有爬取详情页。还在学习阶段的读者可以尝试一下。 适用于基础刚开始学习爬虫的&#xff01; 1.改进点&#xff1a; 将普通的r…...

拷贝控制总结

1.拷贝、值与销毁&#xff1a; 拷贝构造函数&#xff1a;如果一个构造函数的第一个参数是自身类类型的引用&#xff0c;且其他&#xff08;如果有的话&#xff09;参数都有默认实参&#xff0c;则此构造函数叫做拷贝构造函数&#xff1b;如果我们没有为类定义一个拷贝构造函数…...

无重复字符串的最长子串

题目描述&#xff1a;给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 第一次提交记录 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:if not s:return 0lookup set()left res 0for right in range(len(s)):while s…...

javaScript Object.hasOwn()的用法

Object.hasOwn() 如果指定的对象自身有指定的属性&#xff0c;则静态方法 Object.hasOwn() 返回 true。如果属性是继承的或者不存在&#xff0c;该方法返回 false。 备注&#xff1a; Object.hasOwn() 旨在取代 Object.prototype.hasOwnProperty()。 **语法&#xff1a;**Objec…...

MINI2440 开发板 给他干出来了

环境是ubuntu14.04。不要问我为什么是这个版本&#xff0c;因为之前的ubuntu12.04 环境干不出来&#xff0c;你去试试就知道了&#xff01;各种资源包下载不下来。 输入启动参数&#xff1a; 进入MINI2440&#xff1a;别说心里一万个开心&#xff0c;启动完成&#xff0c;输入p…...

上海人工智能实验室的书生·浦语大模型学习笔记(第二期第三课——上篇)

书生浦语是上海人工智能实验室和商汤科技联合研发的一款大模型&#xff0c;这次有机会参与试用&#xff0c;特记录每次学习情况。 一、课程笔记 本次学习的是RAG&#xff08;Retrieval Augmented Generation&#xff09;技术&#xff0c;它是通过检索与用户输入相关的信息片段…...

前端小白的学习之路(Vue2 三)

提示&#xff1a;学习vue2的第三天&#xff0c;笔记记录&#xff1a;生命周期&#xff0c;组件(注册&#xff0c;传值) 目录 一、生命周期 二、组件 1.注册组件 1)全局注册 2)局部注册 2.组件传值 1&#xff09;父传子 2&#xff09;子传父 3&#xff09;兄弟传值 一…...

ChatGPT 之优势与缺陷

原文&#xff1a; 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 介绍 欢迎来到《ChatGPT&#xff1a;好的、坏的和丑陋的》。在本书中&#xff0c;我们踏上了探索 ChatGPT 多面世界的旅程&#xff0c;这是由 OpenAI 开发的先进自然语言处理模型。随着 ChatGPT 和类似…...

python爬虫———post请求方式(第十四天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…...

51蓝桥杯之DS18B20

DS18B20 基础知识 代码流程实现 将官方提供例程文件添加到工程中 添加onewire.c文件到keil4里面 一些代码补充知识 代码 #include "reg52.h" #include "onewire.h" #include "absacc.h" unsigned char num[10]{0xc0,0xf9,0xa4,0xb0,0x99,…...

TiDB 组件 GC 原理及常见问题

本文详细介绍了 TiDB 的 Garbage Collection&#xff08;GC&#xff09;机制及其在 TiDB 组件中的实现原理和常见问题排查方法。 TiDB 底层使用单机存储引擎 RocksDB&#xff0c;并通过 MVCC 机制&#xff0c;基于 RocksDB 实现了分布式存储引擎 TiKV&#xff0c;以支持高可用分…...

【c++】STl-list使用list模拟实现

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;c_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 …...

RAG实战解析:如何通过检索增强生成提升知识密集型NLP任务性能

1. RAG技术为什么能改变知识密集型NLP任务格局 第一次听说RAG&#xff08;Retrieval-Augmented Generation&#xff09;这个概念时&#xff0c;我正被一个开放域问答项目折磨得焦头烂额。当时我们用纯BART模型生成的答案总是出现事实性错误&#xff0c;比如把"特斯拉创始人…...

3步构建数字时光机:GetQzonehistory全方位备份QQ空间回忆方案

3步构建数字时光机&#xff1a;GetQzonehistory全方位备份QQ空间回忆方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 问题解决矩阵&#xff1a;为什么需要数字记忆备份 数字记忆的…...

DAMOYOLO-S与数据库联动:检测结果实时入库与查询

DAMOYOLO-S与数据库联动&#xff1a;检测结果实时入库与查询 你有没有想过&#xff0c;当AI模型在摄像头前“看到”一个人、一辆车时&#xff0c;这些信息除了在屏幕上显示一下&#xff0c;还能做什么&#xff1f;如果这些“看见”的瞬间——谁、在哪儿、什么时候、有多确定—…...

Cloudflare邮件路由的隐藏玩法:一个域名无限别名,管理不同网站注册,再也不怕信息泄露

Cloudflare邮件路由的隐私管理艺术&#xff1a;用无限别名打造数字身份防火墙 在个人信息如同裸奔的数字时代&#xff0c;每次网站注册都是一次隐私赌博。你是否经历过这样的困扰&#xff1f;某个小众论坛注册三个月后&#xff0c;主邮箱突然涌入大量赌博邮件&#xff1b;双十一…...

OpenClaw人人养虾:网络模型

Gateway 支持多种网络拓扑&#xff08;Network Topology&#xff09;&#xff0c;从纯本地到跨互联网远程访问。本文档介绍各种连接架构及其配置。 网络拓扑概览 ┌─────────────────────────────────────────────┐ │ …...

告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略

告别C盘爆满&#xff01;Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略 你是否经历过C盘空间告急的恐慌&#xff1f;当红色进度条填满磁盘图标时&#xff0c;那种窒息感堪比程序员面对满屏报错。对于嵌入式开发者而言&#xff0c;ESP-IDF环境安装往往成为C盘的"隐形…...

从零开始:用Qwerty Learner提升你的打字速度和英语学习效率

从零开始&#xff1a;用Qwerty Learner提升你的打字速度和英语学习效率 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner 还在为打字速度慢而烦恼吗&#xff1f;想同时提升英语词汇量和编程术语记忆吗&#xff1f;Qw…...

Qwen3-VL-2B为何选CPU优化?低门槛部署实战解读

Qwen3-VL-2B为何选CPU优化&#xff1f;低门槛部署实战解读 1. 引言&#xff1a;让AI看懂图片&#xff0c;其实很简单 你有没有想过&#xff0c;让AI像人一样“看懂”一张图片&#xff0c;到底需要多高的门槛&#xff1f; 过去&#xff0c;这通常意味着你需要一台价格不菲的、…...

PostgreSQL杂谈 13—GIN索引的优化策略与实战调优

1. GIN索引的核心原理与性能瓶颈 GIN&#xff08;Generalized Inverted Index&#xff09;作为PostgreSQL中的"万能工具箱"&#xff0c;特别擅长处理数组、全文搜索这类"一对多"的数据关系。它的核心设计借鉴了搜索引擎的倒排索引思想&#xff0c;但比传统…...

3大核心方案破解戴森电池固件限制:让你的吸尘器重获新生

3大核心方案破解戴森电池固件限制&#xff1a;让你的吸尘器重获新生 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 问题溯源&#xff1a;…...