QT学习日记 | 显示类控件

目录

前言

一、QLabel控件

1、属性介绍

2、实战演练

(1)文本格式属性

(2)图片属性

(3)对齐、换行、缩进、边距属性

(4)伙伴属性

二、QLCDNumber控件

1、属性介绍

2、实战演练

三、QProgressBar控件

1、属性介绍

2、实战演练

四、QCalendarWidget控件

1、属性介绍

2、实战演练


前言

        本文主要介绍 Qt 为我们提供的一些常见的显示类控件,主要有 QLabel、QLCDNumber、QProgressBar、QCalendarWidget;

一、QLabel控件

1、属性介绍

text:文本内容属性

textFormat:文本格式属性

pixmap:QLabel中的图片

scaledContents:是否自动拉伸

alignment:对齐方式

wordWrap:标签内文本是否自动换行

indent:设置文本缩进,水平和垂直方向都生效

margin:内部文本与边框的间距

openExternalLinks:是否允许打开一个外部链接

buddy:给QLabel关联一个伙伴,点击QLabel时会激活对应的伙伴

2、实战演练

(1)文本格式属性

关于textFormat,主要有如下四种设置

Qt::PlaintText  纯文本

Qt::RichText   富文本(支持html)

Qt::MarkdownText   markdowm 格式

Qt::AutoText  根据文本内容自动决定格式

下面,我们分别可以尝试以下这四种格式模式

1)拖拽出如下四个QLabel 

2)分别给这四个Label设置格式

(2)图片属性

        我们通过QLabel还可以显示图片;

1)创建qrc文件并导入图片资源(前面介绍过,这里直接跳过)

2)拖拽创建一个Label控件

3)设置图片

拓展:

        当我们拖动窗口控制大小时,图片的大小并不会改变,因为我们的QLabel设置的大小是固定的,不会发生改变,要想我们拖动窗口扩大窗口时也扩大label,我们需要引入一个新的概念,事件!关于事件这里粗略提一下,当我们拖拽改变窗口大小时,会触发一个resizeEvent的事件函数,这个函数是虚函数,我们可以重写来设置窗口大小发生改变时所做的动作,如下所示;

        此时便可以实现我们拖拽改变窗口大小的同时改变label标签大小,从而改变图片大小;

(3)对齐、换行、缩进、边距属性

关于Alignment(对齐方式)主要有以下取值

Qt::AlignLeft:水平方向靠左。

Qt::AlignRight:水平方向靠右。

Qt::AlignHCenter:水平方向居中。

Qt::AlignJustify:水平方向调整间距两端对齐。

Qt::AlignTop:垂直方向靠上。

Qt::AlignButton:垂直方向靠下。

Qt::AlignVCenter:垂直方向居中。

Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter。

        我们直接通过代码来测试这些属性;我们还是创建四个QLabel

1)拖拽四个QLabel,并设置边框

2)分别测试属性功能

(4)伙伴属性

        我们创建两个QRadioButton与两个文本,并给这两个文本设置快捷键与伙伴属性;        

1)拖拽创建控件

这里Label中 &后面接的字符就是快捷键,可以通过 alt + 字符来触发快捷键,如上可以通过alt + a 与 alt + b 触发对应快捷键

2)设置buddy属性

        此时我们便可以通过快捷键选择绑定伙伴的按钮;

二、QLCDNumber控件

        该控件是用于显示老式计算器数字的控件,类似于计算机中数字显示,电梯楼层数字显示等;

1、属性介绍

intValue:QLCDNumber显示数字的值(int)

value:QLCDNumber显示数字的值(double)

digitCount:显示几位数字

mode:数字显示模式

segmentStyle:设置显示风格

smallDecimalPoint:设置比较小的小数点

注意:

1、其中前两个属性的唯一区别是一个是整型,一个是浮点型,这两个设置数字的值使用的不是 setIntValue 和 setValue,而是统一使用display;

2、mode的值可以是如下几种

QLCDNumber::Dec:十进制模式

QLCDNumber::Hex:十六进制模式

QLCDNumber::Bin:二进制模式

QLCDNumber::Oct:八进制模式

只有十进制才显示小数点后面内容

3、segmentStyle 的值可以是如下几种

QLCDNumber::Flat:平面显示风格

QLCDNumber::Outline:轮廓显示风格

QLCDNumber::Filled:填充显示风格

2、实战演练

设置一个倒计时的计时器

1)拖拽创建QLCDNumber,并设置初始值为10

2)设计倒计时逻辑

        我们需要设计一个定时器,而 Qt 内置了一个定时器类,我们可以直接使用这个定时器类,这个定时器通过 start 方法启动后,每隔一段时间,触发一次 QTimer::timeout 信号;

        我们可以通过 connect 将这个timeout信号跟槽函数连接起来,达到每隔一段时间完成某个动作这样的逻辑;

三、QProgressBar控件

        这个控件也很容易理解,就是我们所说的进度条;

1、属性介绍

minimum:进度条最小值

maximum:进度条最大值

value:进度条当前值

alignment:文本在进度条中的对齐方式

textVisible:进度条的数字是否可见

orientation:进度条的方向是水平还是垂直的

invertAppearance:是否朝反方向增长进度

textDirection:文本的朝向

format:展示数字的格式

注意:

1、关于 alignment 的参数设置与 QLabel 中 alignment 参数设置相同;

2、关于 format 的参数主要有如下几种

%p:表示进度的百分比(1~100)

%v:表示进度的数值(1~100)

%m:表示进度剩余时间(毫秒)

%t:表示进度的总时间(毫秒)

2、实战演练

        设置进度条随时间增长,这就又要涉及我们前面刚学过的定时器了;

1)拖拽创建一个进度条,最小值设为0,最大值设为100,初始值设置为0

2)在头文件声明定时器与定时器相关槽函数

3)初始化定时器与实现进度条按时间增长逻辑

四、QCalendarWidget控件

        说白了,该控件就是要给日历控件;

1、属性介绍

selectDate:当前选中的日期

minimumDate:最小日期

maximumDate:最大日期

firstDayofWeek:每周的第一天(日历的第一列)是周几

gridVisible:是否显示表格的边框

selectionMode:是否允许选择日期

navigationBarVisible:日历上方标题是否显示

horizontalHeaderFormat:日历上方标题显示的日期格式

verticalHeaderFormat:日历第一列显示的内容格式

dateEditEnable:是否允许日期被编辑

除了上述接口我们需要了解以外,我们还需要知道日历类为我们提供的一些信号

selectionChange(const QDate&):当选中日期发生改变时发出,形参为改变后的日期

activated(const QDate&):当双击一个有效日期或按下回车键时发出,形参为改变后的日期

currentPageChange(int, int):当年份月份发生改变时发出,形参表示改变后的新年份与月份

2、实战演练

        我们点击日历上日期,显示在标签内;

1)拖拽创建日历控件

2)设计槽函数

        右键转达到槽,选择clicked;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图灵之旅--二叉树堆排序

目录 树型结构概念树的表示形式 二叉树概念特殊的二叉树二叉树性质二叉树的存储二叉树的遍历前中后序遍历 优先级队列(堆)概念 优先级队列的模拟实现堆的性质概念堆的存储方式堆的创建 堆常用接口介绍PriorityQueue的特性PriorityQueue常用接口介绍优先级队列的构造插入/删除/获…

闲聊电脑(5)装个 Windows(一)

​夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,上次说到硬盘分区和格式化,弄完之后,就该装系统了吧? 冰箱&#x…

确定问卷调查样本量

目录 1. 问卷数据类型1.1 定性数据&定性分析1.2 定量数据&定量分析 2. 确定初始样本容量:2.1 公式:2.2 Z值2.3 p2.4 e2.5 举例 3.调整初始样本容量:3.1 公式:3.2 结论就是 小结: 1. 问卷数据类型…

消息中间件之RocketMQ源码分析(七)

并行消费和顺序消费 ConsumeMessageService是一个通用的消费服务接口,它包含两个实现类org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService和 org.apache.rocketmq.client.impl.consumer.ConsumeMessageOrderlyService,这两个…

学习并用好大模型

大模型是个好东西,学好并用好益处多多~ 1. 运用大模型服务我们的工作 运用大模型服务于工作,可以从以下几个方面着手: 知识管理与检索: 利用大模型强大的自然语言处理能力,建立企业内部的知识库系统。员工可以通过提问…

03-Java单例模式 ( Singleton Pattern )

单例模式 单例模式设计要点单例模式基础实现摘要实现范例 单例模式的几种实现方式1. 懒汉式,线程不安全2. 懒汉式,线程安全3. 饿汉式4. 双检锁/双重校验锁(DCL,即 double-checked locking)5. 登记式/静态内部类6. 枚举…

记录关于node接收并解析前端上传excel文件formData踩的坑

1.vue2使用插件formidable实现接收文件,首先接口不可以使用任何中间件,否则form.parse()方法不执行。 const express require(express) const multipart require(connect-multiparty); const testController require(../controller/testController)/…

【论文精读】多模态情感分析 —— VLP-MABSA

Vision-Language Pre-Training for Multimodal Aspect-Based Sentiment Analysis 本篇论文发表于ACL-2022 原文链接 https://arxiv.org/abs/2204.07955 源码 GitHub - NUSTM/VLP-MABSA 模态:图像文本 基于多模态方面的情感分析(MABSA)近年来越来越受到关注。然而&am…

【Power Automate】规避流程30天的运行时限(只针对审批流)

众所周知,Power Automate的流程最多只能运行30天,到点之后直接超时,如果我们有超时时间设置的比较长的审批就会很麻烦,可能我们把审批节点的超时时间都设置为25天,结果第一个审批人就把25天拉满了,那第二个…

SpringBoot实战第三天

今天主要完成了: 新增棋子分类 棋子分类列表 获取棋子分类详情 更新棋子分类 更新棋子分类和添加棋子分类_分组校验 新增棋子 新增棋子参数校验 棋子分类列表查询(条件分页) 先给出分类实体类 Data public class Category {private Integer id;//主键IDNot…

七月论文审稿GPT第2.5和第3版:分别微调GPT3.5、Llama2 13B以扩大对GPT4的优势

前言 自去年7月份我带队成立大模型项目团队以来,我司至今已有5个项目组,其中 第一个项目组的AIGC模特生成系统已经上线在七月官网第二项目组的论文审稿GPT则将在今年3 4月份对外上线发布第三项目组的RAG知识库问答第1版则在春节之前已就绪至于第四、第…

C语言-3

定义指针 /*指针的概念:1.为了方便访问内存中的内容,给每一个内存单元,进行编号,那么我们称这个编号为地址,也就是指针。2.指针也是一种数据类型,指针变量有自己的内存,里面存储的是地址,也就是…

Vue ElementUI中el-table表格嵌套样式问题

一、表格嵌套要求: 两个表格嵌套,当父表格有children数组时子表格才展示;子表格数据少于父表格展示字段,且对应固定操作列不同; 二、嵌套问题: 当使用el-table的typeexpand实现表格嵌套时,样…

hbuiderX打包为apk后无法停止录音的解决方案

同一个APP在hbuilder和hbuilderX打包&#xff0c;出现没有麦克风权限 - DCloud问答 第一步&#xff1a; 在manifest.json的“模块权限配置”中勾选以下权限&#xff1a; <uses-permission android:name"android.permission.MODIFY_AUDIO_SETTINGS" /> <use…

Linus进程概念

冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是有一个个的硬件组件组成 输入单元&#xff1a;包括键盘, 鼠标&#xff0c;扫…

golang 引入swagger(iris、gin)

golang 引入swagger&#xff08;iris、gin&#xff09; 在开发过程中&#xff0c;我们不免需要调试我们的接口&#xff0c;但是有些接口测试工具无法根据我们的接口变化而动态变化。文档和代码是分离的。总是出现文档和代码不同步的情况。这个时候就可以在我们项目中引入swagge…

如何利用边缘计算网关进行机床数据采集,以提高数据采集的效率和准确性-天拓四方

边缘计算网关集成了数据采集、处理和传输功能的嵌入式设备。它位于传感器和执行器组成的设备层与云计算平台之间&#xff0c;能够实时处理和响应本地设备的数据请求&#xff0c;减轻云平台的压力&#xff0c;提高数据处理的速度和效率。同时&#xff0c;边缘计算网关还可以将处…

0206作业

TCP&#xff08;传输控制协议&#xff09;和 UDP&#xff08;用户数据报协议&#xff09;是两种常用的网络传输协议。它们之间的主要区别在于&#xff1a; 可靠性&#xff1a;TCP 是一种可靠的传输协议&#xff0c;它提供了数据传输的确认、重传和排序功能。如果数据在传输过程…

ROS笔记二:launch

目录 launch node标签 参数 参数服务器 节点分组 launch launch文件是一种可以可实现多节点启动和参数配置的xml文件,launch文件用于启动和配置ROS节点、参数和其他相关组件。launch文件通常使用XML格式编写&#xff0c;其主要目的是方便地启动ROS节点和设置节点之间的连…

一周学会Django5 Python Web开发-Django5介绍及安装

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计10条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…
最新文章