PyQt5常用操作之布局

在Qt里面布局分为4大类

QBoxLayout

QBoxLayout:直译为“盒子布局”

一般使用它的两个子类 QHBoxLayoutQVBoxLayout

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_()
PyQt5常用操作之布局

原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/pyqt5changyongcaozuozhibuju/.html

(0)
打赏 微信扫一扫 微信扫一扫
朋远方的头像朋远方
上一篇 2022年9月4日 下午11:33
下一篇 2022年9月6日 上午9:43

相关推荐

发表回复

登录后才能评论