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

QtDesigner中Label控件详解

一: Label控件:

label也就是标签,我们通常会认为标签就是显示文本的,但其实label标签还有很多的作用,接下来我就给大家介绍一下:

① 显示文本,我们可以通过拖动label后直接修改label的显示文本(当运行代码显示ui界面后,预设定的文本直接进行显示)

② 显示图片,其实我们的label还有一个重要的功能就是显示图片

二:实战演示

在左侧的控件部分找到Label,将其拖动到MainWindow中。

 ok,接下来就到精彩时刻了,接下来将介绍这个label的属性信息。

对象位置信息

我们可以看见各个组件的关系:

MainWindow(容器):应用程序的主窗口框架,提供​​标准窗口功能​​(标题栏、最大化/最小化按钮等),它的内部不能直接放置普通的控件,必须通过 CentralWidget间接管理控件。

CentralWidget(容器):MainWindow 的核心内容区域,是​​所有主界面控件的根容器​​。支持嵌套复杂结构,在一个结构控件中加入其他控件。

因此我们可以看见label控件被放在了CentralWidget内部,可以看见MainWindow的类名称为QMainWindow,我们在编写代码时调用的父类就是QMainWindow。

Label名称

Label的名称很重要,因为在后续编写代码时会调用这个Label的名称。如何修改名称。

关于名称有两个需要提到的点:

① 关于①提到的名称其实算不上名称,只是在label上展示的字。可以通过双击界面上的TextLable修改展示字,比如修改111

我们可以看见在属性中text的值变成111,因此也可以在这个text的位置改值。

以上其实没有改到label的根本,只是展示的内容。

接下来改动这个label的名字。

② 改动label的名字

 通过在对象位置修改名称(Label名称)(关系到引用)

在这个位置修改名称,在代码中对这个Label进行修改展示字

self.ui.current_state.setText(f"保存成功!")

(“保存成功!”)修改原先 current_state展示的字。

控件的enabled

为什么我在Lable篇提到enabled呢?因为关于enabled在各个控件都有相关的属性设置。

其在QWidget中的enabled,勾选或者不勾选这个值,​True​(默认值):控件可正常响应鼠标、键盘事件(如点击按钮、输入文本)。设为 ​False​:控件显示为灰色(样式可自定义),且无法响应用户操作。具体的情况如下,左边时勾选的情况,右边是没有勾选的情况。可以发现右边字变成灰色了,说明无法点击进行相关操作(此在button中有很大的作用)。当然关于enabled也可以在代码中进行设置。

 以下代码是将这个label设为False。

self.ui.label.setEnabled(False)

Label大小和展示时填充情况

首先明确:控件的 sizeHint() 默认根据其 ​​内容​​(如文本、图标)和 ​​样式​​(如字体、边距)自动计算。通过修改内容属性,可间接调整 sizeHint() 返回值。

关于Label,最终要的就是Label的大小和填充策略。因为通常我会将一张图像传给Label进行展示,此时Label展示是否完全,展示多少内容都是需要进行调整的。

关于上图,x和y代表的是Label的标签位置,宽度和高度代表的是Label的宽高,这个宽高比例和大小都对后续填充图像有所影响。 ​​​​

上图可以看见图像的水平和垂直策略,其中包含这些方法 。将在一个Horizontal Layout上展示。

①Fixed方法:

控件宽度固定为 sizeHint() 返回的值,不随布局拉伸。

以上就是设置为fix的方法,无论我放在这个Layouts中,这个label的大小都是紧贴这这行字的,不会发生拉伸的情况。

②Minimum方法:

控件宽度不可小于 sizeHint(),但可以拉伸至更大。控件的最小允许尺寸(布局不会分配小于此值的空间)

由于sizeHint()内部计算,我们观察以下变化情况。

将水平和垂直方向都设置为minimum时,只要不小于设置的值可以无限拉大,目前我们可以看见这个label已经拉伸到完全填充整个layout了。

③Maxmum方法:

控件宽度不可超过 sizeHint(),但可以缩小至更小。控件的最大允许尺寸(布局不会分配超过此值的空间)。

此时我设置垂直策略为Maximum,限制其最大尺寸只能为Label的尺寸。

一个比较反常识的感觉就是,mini反而变大,max反而变小。

其实只需要记住,mini限制小尺寸(layout不能比label小,如果小就会被撑大(撑大到label允许的最小尺寸)) 

max限制大尺寸(layout大,但他不会影响到label的大小,因为已经限制label变大了,因此label放到很大的layout中也不会使label变大)

 

④Perferred方法:

控件默认使用 sizeHint() 的宽度,但可拉伸或缩小(优先保持理想大小)。

⑤Expanding方法:

控件会尽可能扩展以填充可用空间,优先级高于其他控件。

可以看出已经扩展到整个空间中了。 

⑥​​MinimumExpanding​方法

控件宽度至少为 sizeHint(),并尽可能扩展(类似 Expanding)。

⑦​​Ignored​方法

完全忽略 sizeHint(),控件宽度由布局或父容器强制决定。

Label的水平和垂直延展

以水平延展举例:

在一个layout中放入两个Label(使用prederred策略),此时两个label占的区域相同大,但是可以通过水平延申进行修改。

此时我将两个Label的水平延展都设置为10,两张图依然是1:1的关系 。

当我把第二张设置为20时,图像所占区域变成了1:2了,这就是延展的变化。

Label上显示字体

在font属性上,可以选择不同的字体情况。

 Label居中等位置关系

我们可以看见,当我们在label上输入相关字后,可能不是居中显示的,但是当我们想让其居中或者居右显示时,就可以通过alignment进行设置。其中有水平和垂直方向上的位置。

 

 设置为水平居中后,字就位于label的中心区域了。

Label的背景,字体,渐变等相关风格设置

相关风格设置都可以在styleSheet中进行设置。

点击三个点,会出现下面的样式。

举个例子:如果想添加背景颜色,记住不要直接点击添加颜色,因为你需要添加背景颜色,需要点击添加颜色后面的倒三角,选择background-color,随后选择想添加的颜色。

添加结束后,界面会显示:background-color:xxxx。发现我们的颜色也显示了。

 因此当我们熟练后,可以直接在样式表中输入background-color: 随后直接点击添加颜色,就可以完成背景色的添加,当然还有很多的方法,大家可以自己进行探究。

以上就是我目前用到的一些常见的Label用法,后续我也会持续的更新其他的Label用法!!!!!!

本专栏还有其他控件的用法也在持续更新,你有什么想看的控件或者控件方法也可以在评论区进行讨论。。。

http://www.xdnf.cn/news/1675.html

相关文章:

  • uniappx 打包配置32位64位x86安装包
  • 【数据可视化-25】时尚零售销售数据集的机器学习可视化分析
  • 02_java的运行机制以及JDKJREJVM基本介绍
  • 补题【Darkness+Different Billing+Dice Game】
  • C++开发之设计模式
  • 大模型的超参数Top P是什么 ?有什么用?
  • three.js精灵及精灵材质、Shader源码分析
  • ERROR: x264 not found using pkg-config
  • 海思ISP调试记录
  • 解决 PostgreSQL 检查约束导致的数据插入异常问题
  • Rundeck 介绍及安装:自动化调度与执行工具
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(六)
  • 信息系统项目管理师_第十四章 项目沟通管理
  • NLP实战(4):使用PyTorch构建LSTM模型预测糖尿病
  • C++ std::future的使用
  • 第二章:MCP服务器分类
  • 【C语言干货】面试 | 不使用临时变量实现两个整数的交换
  • PageView 内嵌套 TabBarView 的滑动冲突
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类矩阵QRectF)
  • 在Vue3中,如何在父组件中使用v-model与子组件进行双向绑定?
  • DNS实验
  • 【Python语言基础】24、并发编程
  • 学习记录:DAY17
  • 机器学习(7)——K均值聚类
  • 【python】一文掌握 markitdown 库的操作(用于将文件和办公文档转换为Markdown的Python工具)
  • .NET代码保护混淆和软件许可系统——Eziriz .NET Reactor 7
  • Postgresql源码(143)统计信息基础知识(带实例)
  • Zynq7020 制作boot.bin及烧录到开发板全流程解析
  • 【AI平台】n8n入门1:详细介绍n8n的多种安装方式(含docer图形化安装n8n)
  • sass 变量