一、PyQt5容器控件
在 PyQt5中,容器控件用于容纳和组织其他控件,包括布局控件、窗口控件和对话框控件等。
以下是 PyQt 中常用的容器控件:
- QWidget:是所有窗口控件的基类,也可以作为容器控件使用;
- QHBoxLayout 和 QVBoxLayout:是最常用的布局控件之一,分别用于水平方向和垂直方向的布局;
- QGridLayout:是用于表格布局的控件;
- QSplitter:用于分割控件的大小,可以调整子控件的大小;
- QStackedWidget:可以在同一个区域显示多个控件,但只有一个控件是可见的;
- QTabWidget:用于创建带有选项卡的界面,可以在不同的选项卡中显示不同的控件;
- QScrollArea:提供一个可滚动的视图区域,用于显示大量的控件;
- QDockWidget:提供可停靠的区域,通常用于创建类似于 Visual Studio 中的面板。
下面是一个使用 QVBoxLayout 和 QHBoxLayout 组合布局的例子:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QVBoxLayout, QLabel, QPushButton
class MainWindow(QWidget):
def __init__(self):
super().__init__()
# 创建两个按钮和一个标签
button1 = QPushButton("Button 1")
button2 = QPushButton("Button 2")
label = QLabel("Label")
# 创建两个水平布局,用于放置两个按钮
hbox1 = QHBoxLayout()
hbox1.addWidget(button1)
hbox1.addWidget(button2)
# 创建一个垂直布局,用于放置两个按钮和一个标签
vbox = QVBoxLayout()
vbox.addLayout(hbox1)
vbox.addWidget(label)
# 设置主窗口的布局
self.setLayout(vbox)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
在上述代码中,我们创建了两个按钮和一个标签,使用 QHBoxLayout 将两个按钮放在一行,然后使用 QVBoxLayout 将两个按钮和标签垂直排列。最后,我们将这个垂直布局设置为主窗口的布局。
这是一个非常简单的例子,但它展示了 PyQt 中容器控件的基本用法。通过组合不同的容器控件和布局控件,我们可以创建出非常复杂和灵活的界面。
二、更多详细教程参考