导言
分组框是将按钮进行分组的容器部件,逻辑上和屏幕上显示都分组。它们管理用户和应用的相互关系,这样你就不用必须执行简单的限制。分组框通常用于将复选框和单选按钮分为独立组。
分组框案例包含一个视窗类,用作显示四个分组框——独立的单选按钮、非独立的复选框、有一个可用复选框的独立单选按钮组、普通按钮的分组框。
定义Window类
Window类是QWidget子类,用来显示一组分组框,类的定义包含了构建每个分组框和用不同按钮部件选项弹出它的函数。该案例中,部件将用做顶层视窗,所以构造器的定义使我们不必指定一个父部件。构造器创建了一个网格布局,并用每个分组框进行填充。
from PyQt5.QtWidgets import *
import sys
class Window(QWidget):
def __init__(self):
super(Window, self).__init__()
self.grid = QGridLayout()
self.grid.addWidget(self.createFistExclusiveGroup(), 0, 0)
self.grid.addWidget(self.createSecondExclusiveGroup(), 1, 0)
self.grid.addWidget(self.createNoneExclusiveGroup(), 0, 1)
self.grid.addWidget(self.createPushButtonGroup(), 1, 1)
self.setLayout(self.grid)
self.setWindowTitle('Group Boxes')
self.resize(480, 320)
- 用于创建每个分组框的函数,每次返回一个QGroupBox,并插入到网格布局中。
def createFistExclusiveGroup(self):
groupBox = QGroupBox('Exclusive Radio Buttons')
radiao1 = QRadioButton('&Radio Button 1')
radiao2 = QRadioButton('R&adio Button 2')
radiao3 = QRadioButton('Ra&dio Button 3')
radiao1.setChecked(True)
vbox = QVBoxLayout()
vbox.addWidget(radiao1)
vbox.addWidget(radiao2)
vbox.addWidget(radiao3)
vbox.addStretch(1)
groupBox.setLayout(vbox)
return groupBox
- 第一个分组框包含并管理三个单选按钮&#x