在Qt里面布局分为4大类
QBoxLayout
QBoxLayout:直译为“盒子布局”
一般使用它的两个子类 QHBoxLayout 和 QVBoxLayout
QHBoxLayout ,“horizontal” 水平的意思,所以QHBoxLayout 是指水平布局
QVBoxLayout,“vertical” 垂直的肆意,所以QVBoxLayout是指垂直布局
# -*- coding = utf-8 -*- # @Time : 2022/9/5 6:25 # @Author : Arthur # @FileName : 垂直布局器练习.py # @Software : Pycharm import sys from PyQt5.QtWidgets import QWidget, QVBoxLayout, QPushButton, QApplication, QGroupBox, QRadioButton, QHBoxLayout class my_window(QWidget): def __init__(self): # 切记一定要调用父类的__init__方法,因为它里面有很多对UI空间的初始化操作 super().__init__() self.init_ui() def init_ui(self): # 最外层的垂直布局器 container = QVBoxLayout() # 创建第1个组,添加多个组件 # hobby 主要是保证他们是一个组 hobby_box = QGroupBox('爱好') # v_layout 保证三个爱好是垂直摆放 v_layout = QVBoxLayout() btn1 = QRadioButton('抽烟') btn2 = QRadioButton('喝酒') btn3 = QRadioButton('烫头') # 添加 btn 到 v_layout 中 v_layout.addWidget(btn1) v_layout.addWidget(btn2) v_layout.addWidget(btn3) # 把 v_layout 添加到 hobby_box 中 hobby_box.setLayout(v_layout) # 创建第2个组,添加多个组件 sex_box = QGroupBox('性别') h_layout = QHBoxLayout() btn4 = QRadioButton('男') btn5 = QRadioButton('女') h_layout.addWidget(btn4) h_layout.addWidget(btn5) sex_box.setLayout(h_layout) # 设置窗口大小 self.resize(600, 300) # 设置标题 self.setWindowTitle('垂直+水平布局器综合练习') # 把爱好和性别的内容分别添加到容器中 container.addWidget(hobby_box) container.addWidget(sex_box) # 让当前窗口使用这个排列的规则(布局器) self.setLayout(container) pass pass if __name__ == '__main__': app = QApplication(sys.argv) w = my_window() w.show() app.exec_()
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/pyqt5changyongcaozuozhibuju/.html