QGroupBox类可实现分组功能。 其继承层次结构如下所示:
(QObject, QPaintDevice) - QWidget - QGroupBox
构造函数:
QGroupBox([QWidget parent = None])
QGroupBox( QString text[, QWidget parent = None])
父控件parent为可选参数。text为显示在控件上部边框的标题文字,可在标题文字的某个字母前加上“&”来指定快捷键。使用方法参见以下代码:
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QGroupBox")
window.resize(200, 80)
mainbox = QtWidgets.QVBoxLayout()
radio1 = QtWidgets.QRadioButton("&Yes")
radio2 = QtWidgets.QRadioButton("&No")
box = QtWidgets.QGroupBox("&Do you know Python?") # 创建QGroupBox
hbox = QtWidgets.QHBoxLayout() # 放到box中的QHBoxLayout容器
hbox.addWidget(radio1) # 添加要成组的组件radio1
hbox.addWidget(radio2) # 添加要成组的组件radio2
box.setLayout(hbox) # 将hbox布局到box
mainbox.addWidget(box) # 将box添加到主窗口
window.setLayout(mainbox) # 将mainbox布局到窗口
radio1.setChecked(True) # 设置radio1为选中状态
window.show()
sys.exit(app.exec_())
QGroupBox类支持以下方法(只列出基本方法 - 完整方法列表,请参阅http://doc.qt.io/qt-5/qgroupbox.html):
setTitie (text) - 设置标题文字;
title( )-返回标题文字;
setAlignment(alignment) - 设置标题文字的水平对齐方式;
alignment( ) - 返回标题文字的水平对齐方式;
setcheckable(flag) - 如果flag为True,标题文字前有一选择框。如果选择框为选中状态,则QGroupBox组件可用;否则,不可用。
isCheckable( ) - 返回标题文字前是否有选择框的标志。True:有;False:无。
setChecked( flag ) - 如果flag为True,标题文字前的选择框为选中状态;否则,为非选中状态。
isChecked( ) - 返回标题文字前选择框的选中状态。
setFlat( flag )- 如果flag为True,仅上边框显示;否则,四周边框均显示。
isFlat( ) - 如果仅上边框显示,返回True;否则,返回False。
QGroupBox的信号有:
clicked(Flagstatus) - 用鼠标点击标题文字前的选择框时产生。但用setChecked( )函数时不会产生;
toggled(Flagstatus) - 如果QGroupBox组件为可选择状态,则状态切换时产生此信号。