PyQt 容器组件 QGroupBox

QGroupBox 是 PyQt6 中的一个容器组件,用于将一组相关的控件组织在一起,并提供可选的标题和边框。以下是 QGroupBox 的主要特点和用法总结:

1. 基本功能

  • 容器QGroupBox 是一个容器控件,可以将多个控件(如按钮、文本框等)组织在一起。

  • 标题:可以设置一个标题,显示在 QGroupBox 的顶部。

  • 边框:默认情况下,QGroupBox 会显示一个边框,用户可以选择是否显示边框。

2. 常用属性

  • title:设置或获取 QGroupBox 的标题。

  • checkable:设置 QGroupBox 是否可以被选中(即是否显示一个复选框)。

  • checked:获取或设置 QGroupBox 的选中状态(仅当 checkable 为 True 时有效)。

  • alignment:设置标题的对齐方式(如左对齐、居中对齐等)。

  • flat:设置 QGroupBox 是否为扁平样式(无边框或标题栏)。

3. 常用方法

  • setTitle(title: str):设置 QGroupBox 的标题。

  • title() -> str:获取 QGroupBox 的标题。

  • setCheckable(checkable: bool):设置 QGroupBox 是否可选中。

  • isCheckable() -> bool:判断 QGroupBox 是否可选中。

  • setChecked(checked: bool):设置 QGroupBox 的选中状态。

  • isChecked() -> bool:获取 QGroupBox 的选中状态。

  • setAlignment(alignment: Qt.Alignment):设置标题的对齐方式。

  • setFlat(flat: bool):设置 QGroupBox 是否为扁平样式。

4. 信号

  • toggled(bool):当 QGroupBox 的选中状态发生变化时触发(仅当 checkable 为 True 时有效)。

5. 示例代码

import sys

from PyQt6.QtWidgets import *
from PyQt6.QtCore import *


class Window(QWidget):
    # 父类
    def __init__(self):
        super(Window, self).__init__()
        self.initUi()
        # 窗口属性
        self.setGeometry(300,300, 400, 400)
        self.setWindowTitle("QGroupBox 案例")

    def initUi(self):
        letter_box = QGroupBox()
        letter_box.setTitle("字母")
        number_box = QGroupBox("数字")

        # 字母布局
        label1 = QLabel("A")
        label2 = QLabel("B")
        label3 = QLabel("C")

        letter_box_layout = QVBoxLayout()

        letter_box_layout.addWidget(label1)
        letter_box_layout.addWidget(label2)
        letter_box_layout.addWidget(label3)

        # 数字布局
        label4 = QLabel("1")
        label5 = QLabel("2")
        label6 = QLabel("3")

        number_layout = QVBoxLayout()
        number_layout.addWidget(label4)
        number_layout.addWidget(label5)
        number_layout.addWidget(label6)

        """
        先正常布局
        然后将布局应用于group box
        再将group应用于布局
        """

        # gorup布局
        letter_box.setLayout(letter_box_layout)
        number_box.setLayout(number_layout)

        # 应用布局
        window_layout = QVBoxLayout()
        window_layout.addWidget(letter_box)
        window_layout.addWidget(number_box)
        self.setLayout(window_layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec())

6. 应用场景

  • 表单分组:在复杂的表单中,使用 QGroupBox 将相关的输入控件分组,提高界面的可读性。

  • 选项组:用于组织单选按钮或复选框,形成一个逻辑上的选项组。

  • 设置面板:在设置或配置界面中,使用 QGroupBox 将不同的设置项分组显示。

7. 注意事项

  • 布局管理QGroupBox 内部可以使用布局管理器(如 QVBoxLayoutQHBoxLayout 等)来排列子控件。

  • 可选中状态:如果 QGroupBox 设置为可选中,用户可以通过点击复选框来启用或禁用整个组内的控件。

8. 用Qt Designer 设计

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值