PySide6-控件教程-005-QLabel标签控件-内边距、缩放、伙伴关系

QLabel 标签控件

本文摘录自我的开源教程:PySide6 代码式教程 - QLabel,CSDN 平台仅做镜像,答疑、纠错请至 GitHub 提交 issue。

内边距

QLabel还可以调整内边距、启用内容缩放,以更细致地调节显示效果

  • .setMargin(int) 设置内边距(框架的最内部像素和内容的最外部像素之间的距离)
  • .margin() -> int 获取内边距,默认值为0

内容缩放

  • .setScaledContents(bool) 设置是否启用缩放
  • .hasScaledContents() -> bool 返回是否启用了缩放

伙伴关系

当用户按下标签控件的快捷键(仅支持"字母&"形式)时,键盘焦点会转移到该标签的伙伴控件(比如文本编辑器)上

  • .setBuddy(buddy: QWidget) 设置标签的伙伴
  • .buddy() -> QWidget 获取标签的伙伴

示例代码a

本节对应示例代码如下,在已经正确安装 PySide6 的前提下可直接在本地运行:

# https://github.com/muziing/PySide6-Code-Tutorial

import sys

from PySide6 import QtGui, QtWidgets

class MyWidget(QtWidgets.QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle("QLabel-内容边距、缩放")
        self.resize(800, 600)
        self.setup_ui()

    def setup_ui(self) -> None:
        """设置界面,测试功能"""
        # 内边距
        label_1 = QtWidgets.QLabel("PySide6", self)
        label_1.move(340, 100)
        label_1.setStyleSheet("background-color: cyan;")
        label_1.setMargin(20)  # 设置边距
        print(label_1.margin())  # 获取边距

        # 启用缩放
        label_2 = QtWidgets.QLabel(self)
        label_2.resize(50, 50)
        label_2.move(350, 200)
        label_2.setPixmap(QtGui.QPixmap("../../Resources/Icons/OS_Ubuntu_128px.ico"))
        # 该位图为128像素宽高,label2仅有50像素,如不缩放,则只能显示位图的一部分
        label_2.setScaledContents(True)  # 启用内容缩放
        print(label_2.hasScaledContents())  # 获取是否开启了缩放


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyWidget()
    window.show()
    sys.exit(app.exec())

示例代码b

# https://github.com/muziing/PySide6-Code-Tutorial

import sys

from PySide6 import QtWidgets

class MyWidget(QtWidgets.QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle("QLabel-伙伴关系")
        self.resize(800, 600)
        self.setup_ui()
        self.test_01()

    def setup_ui(self) -> None:
        """设置界面"""
        self.name_label = QtWidgets.QLabel("&Name")  # Alt+N快捷键
        self.age_label = QtWidgets.QLabel("年龄(&A)")  # 使用Alt+A快捷键,age_spin_box即获得焦点
        self.name_edit = QtWidgets.QLineEdit()
        self.age_spin_box = QtWidgets.QSpinBox()

        # 使用表单布局管理器进行布局,更多信息参阅本项目Layout目录
        layout = QtWidgets.QFormLayout()
        layout.addRow(self.name_label, self.name_edit)
        layout.addRow(self.age_label, self.age_spin_box)
        self.setLayout(layout)

    def test_01(self) -> None:
        """测试伙伴关系功能"""
        self.name_label.setBuddy(self.name_edit)
        self.age_label.setBuddy(self.age_spin_box)

        print(self.name_label.buddy())


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MyWidget()
    window.show()
    sys.exit(app.exec())

关于 PySide6-Code-Tutorial

  • 前身为已有近 500 Stars 的爆火教程 PyQt_practice
  • 每个模块(.py文件)都可运行,展示了各种控件的各种功能属性作用,代码中有注释讲解
  • 使用最新的 Python 与 PySide 版本(目前为3.10与6.3)
  • 已经涵盖数十个常用控件,且仍在快速增加中

PySide6-控件教程-005-QLabel标签控件-内边距、缩放、伙伴关系_第1张图片原版教程地址:https://github.com/muziing/PySide6-Code-Tutorial

你可能感兴趣的:(ui,python,qt)