pyqt5之GroupBox
import sys from PyQt5.QtWidgets import QApplication, QGroupBox, QVBoxLayout, QPushButton, QWidget app = QApplication(sys.argv) # 创建一个 QWidget 作为主窗口 main_widget = QWidget() # 创建一个 QGroupBox groupBox = QGroupBox("我的分组框") groupBox.setStyleSheet("QGroupBox { border: 2px solid #000; }") groupBox.setCheckable(True) # 使分组框可折叠 # 创建一个按钮 button = QPushButton("点击我") # 为分组框设置布局,并添加按钮 layout = QVBoxLayout() layout.addWidget(button) groupBox.setLayout(layout) # 将分组框设置为中心部件 main_widget.setLayout(QVBoxLayout()) main_widget.layout().addWidget(groupBox) main_widget.show() sys.exit(app.exec_())
layout = QVBoxLayout()
layout.addWidget(button)
groupBox.setLayout(layout)
这段代码是 PyQt 中布局管理的一个典型用法,用于将控件添加到布局中,并将布局设置给容器部件。以下是代码的详细解释:
-
layout = QVBoxLayout()
:- 创建一个垂直布局对象
layout
。QVBoxLayout
是 PyQt 中的一个类,用于管理控件的垂直排列。
- 创建一个垂直布局对象
-
layout.addWidget(button)
:- 将一个按钮控件
button
添加到layout
中。addWidget
是QVBoxLayout
的一个方法,用于将控件添加到布局中,控件会按照添加的顺序垂直排列。
- 将一个按钮控件
-
groupBox.setLayout(layout)
:- 将创建的垂直布局
layout
设置给groupBox
。setLayout
是QGroupBox
的一个方法,用于设置容器部件的布局管理器。这样,groupBox
内部的控件就会按照layout
的规则进行排列。
- 将创建的垂直布局
这段代码的作用是将按钮 button
添加到垂直布局中,并将该布局应用到分组框 groupBox
上。这样,按钮 button
就会显示在分组框内部,并且随着分组框的展开和折叠而显示或隐藏。