PyQt6之分组框
示例代码:
# _*_ coding: UTF-8 _*_
# 开发团队 : 大军安全
# 开发人员 : Dreams
# 开发时间 : 2025/9/19 23:12
# 文件名称 : groupBox.py
# 开发工具 : PyCharm
# 开发任务 : 分组框示例
import sysfrom PyQt6.QtWidgets import QWidget, QRadioButton, QHBoxLayout, QVBoxLayout, QGroupBox, QApplicationclass DemoWidget(QWidget):def __init__(self):super(DemoWidget, self).__init__()# 分别创建4个专业单选按钮,然后将他们作为列表项self.rbJSJ = QRadioButton("计算机", self)self.rbRJGC = QRadioButton("软件工程", self)self.rbTXGC = QRadioButton("通信工程", self)self.rbRGZN = QRadioButton("人工智能", self)self.list = [self.rbJSJ, self.rbRJGC, self.rbTXGC, self.rbRGZN][rb.clicked.connect(self.rbListFunc) for rb in self.list]# 分别创建两个性别单选按钮self.rbNan = QRadioButton("男", self)self.rbNv = QRadioButton("女", self)self.rbNan.toggled.connect(self.rbNxxFunc)# 'nv' 单选按钮关联槽函数rbNxxFunc# 创建两个水平布局、一个外垂直布局self.hLayout1 = QHBoxLayout()self.hLayout2 = QHBoxLayout()self.vLayout = QVBoxLayout()self.layout_init()def layout_init(self):# 两个性别单选按钮加入水平布局1self.hLayout1.addWidget(self.rbNan)self.hLayout1.addWidget(self.rbNv)# 四个专业单选按钮加入水平布局2self.hLayout2.addWidget(self.rbJSJ)self.hLayout2.addWidget(self.rbRJGC)self.hLayout2.addWidget(self.rbTXGC)self.hLayout2.addWidget(self.rbRGZN)# 创建性别和单选按钮组self.gbox1 = QGroupBox("性别", self)self.gbox2 = QGroupBox("专业", self)# 将内部水平布局1设置咱i性别单选按钮组中,内部水平布局2设置在专业单选按钮组中self.gbox1.setLayout(self.hLayout1)self.gbox2.setLayout(self.hLayout2)# 将性别和专业单选按钮组加入外垂直布局self.vLayout.addWidget(self.gbox1)self.vLayout.addWidget(self.gbox2)self.rbNan.setChecked(True)self.rbRJGC.setChecked(True)self.setLayout(self.vLayout)def rbListFunc(self):# 遍历专业对象列表项,如果列表项被选中,显示列表现文本for rb in self.list:if rb.isChecked():print(rb.text())def rbNxxFunc(self):# 如果“男”单选按钮被选中显示“男”,否则显示“女”if self.rbNan.isChecked():print(self.rbNan.text())else:print(self.rbNv.text())
if __name__ == '__main__':app = QApplication(sys.argv)demo = DemoWidget()demo.show()sys.exit(app.exec())
示例效果: