在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


微信扫一扫