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
内部可以使用布局管理器(如QVBoxLayout
、QHBoxLayout
等)来排列子控件。 -
可选中状态:如果
QGroupBox
设置为可选中,用户可以通过点击复选框来启用或禁用整个组内的控件。
8. 用Qt Designer 设计