本文主要是介绍【Qt】常用控件 —— QLabel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- QLabel 的属性
- QLabel 的 文本格式
- QLabel 设置图片
- QLabel 设置文本对齐方式
- QLabel 设置自动换行 边距 缩进
- 自动换行
- 缩进
- 边距
- QLabel 设置伙伴
QLabel 的属性
QLabel 可以用来显示文本 和 图片
text —— QLabel中的文本
textFormat —— 文本的格式
Qt::PlainText 纯文本 Qt::RichText 富文本 (支持html标签)
Qt::MarkdownText markdown格式 Qt::AutoText 根据文本内容自动决定文本格式
pixmap —— QLabel 内部包含图片
scaledContents —— 设为 true 表示内容 自动拉伸填充 QLabel
设为 false 则不会自动拉伸
alignment —— 对齐方式
可以设置水平和垂直方向如何对齐
wordWrap —— 设为 true 内部的文本 会自动换行
设为 false 则内部文本不会自动换行
indent —— 设置文本缩进 水平和垂直方向都生效
margin —— 内部文本 和 边框之间的边距 (上下左右 四个方向都生效)
openExternalLinks —— 是否允许打开一个外部的链接
buddy —— 给 QLabel 关联一个 伙伴 点击QLabel l时就能激活对应的伙伴
QLabel 的 文本格式

分别对三个label 的文本格式 设置 为 纯文本 富文本 markdown

虽然给 三个label 设置了不同的文本格式 但是程序运行后 看起来并没有什么不同

在 纯文本 和 富文本中 添加 < b > 标签 在富文本中 表示文本加粗
加入到纯文本中 只会被当成单纯的文本 不会有渲染操作
QLabel 设置图片

通过 qrc 文件 将玫瑰花图片 添加到 其中

先通过 geometry 函数 获取到 QWidget 窗口 的 width 和 height
再通过 pixmap 函数 获取到 对应的 图片 路径
由于不知道图片的大小 于窗口是否匹配 所以使用 setScaledContents 启动自动拉伸 使得图片填充满整个窗口

运行程序后 图片 铺满整个窗口
Qt 中 表示用户的操作 有两类概念 :
一个是 信号 一个是事件
当用户拖拽修改窗口大小的时候 就会触发resize事件 (resizeEvent)
像resize 这样的事件 是连续变化的 把窗口尺寸从 A拖到B 这个过程中 会触发出一系列的 resizeEvent
让 Widget窗口类 重写 父类 (QWidget) 的 resizeEvent 虚函数
在鼠标拖动窗口尺寸的过程中 这个函数就会被反复调用执行 (每次触发一个resizeEvent 事件 都会被调用一次对应的虚函数)
由于进行函数重写 调用父类的虚函数 就会实际调用到 子类对应的函数

使用 event->size().width() 记录这一时刻的 width 值 大小
event->size().height() 记录这一时刻的 height 值 大小

窗口去拖拽大小时 对应的图片大小也会随着改变
QLabel 设置文本对齐方式

通过 setAlignment 函数 获取 对应 label的文本格式
Qt::AlignHCenter 表示 水平方向 居中
Qt::AlignVCenter 表示 垂直方向 居中

Qt::AlignRight 表示 靠右侧对齐

Qt::AlignTop 表示 靠上对齐
QLabel 设置自动换行 边距 缩进
自动换行

通过 setWordWrap 函数 并设置为true 表示开启自动换行
缩进

setIndent 函数 其参数表示一个像素的值

设置缩进后即使文本换行 后续的行也会产生缩进
边距

setMargin 函数 可以设置四个方向
虽然存在自动换行 但是被边距覆盖掉了 只剩下前面一段的文本存在
QLabel 设置伙伴
将 QLabel 与单选框类似的控件 绑定伙伴关系 就可以通过 Qlabel 触发 单选框的 选择操作

将 label 与 radioButton 之间 绑定伙伴关系
将 label_2 与 radiobutton_2 之间 绑定 伙伴关系

用鼠标可以点击 选项1 和 选项2 但是没办法点击 快捷键A 和 快捷键B
当 输入 ALT A 时 切换到 选项1 输入 ALT B 时 切换到 选项2
Qt中 QLabel中写的文本 是可以指定快捷键的 在文本中 使用 & 跟上一个字符 来表示 快捷键
如: &A 就可以通过键盘上的 ALT A 来触发这个快捷键
绑定 伙伴关系之后 通过 快捷键 就可以选中对应的单选按钮 或 复选按钮
这篇关于【Qt】常用控件 —— QLabel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!