快速掌握Pyqt5的5种布局

Pyqt5相关文章:
快速掌握Pyqt5的三种主窗口
快速掌握Pyqt5的2种弹簧
快速掌握Pyqt5的5种布局
快速弄懂Pyqt5的5种项目视图(Item View)
快速弄懂Pyqt5的4种项目部件(Item Widget)
快速掌握Pyqt5的6种按钮
快速掌握Pyqt5的10种容器(Containers)
快速掌握Pyqt5的20种输入控件(Input Widgets)
快速掌握Pyqt5的9种显示控件
详细学习Pyqt5中的5种布局方式
详细学习Pyqt5中的6种按钮
详细学习Pyqt5中的2种弹簧
详细学习Pyqt5的5种项目视图(Item View)
详细学习Pyqt5的4种项目部件(Item Widget)
详细学习Pyqt5的20种输入控件(Input Widgets)
详细学习Pyqt5的9种显示控件
详细学习Pyqt5的10种容器(Containers)
详细学习PyQt5与数据库交互
详细学习PyQt5中的多线程
快速学习PyQt5的动画和图形效果
快速学习PyQt5的高级自定义控件
快速学会绘制Pyqt5中的所有图(上)
快速学会绘制Pyqt5中的所有图(下)
通过“待办事项列表项目”快速学习Pyqt5的一些特性
待续。。。

在PyQt5中,布局管理器是用来控制窗口中控件(widgets)的位置和大小的。使用布局管理器而不是手动定位控件可以让界面自动适应不同的窗口大小和显示设置。PyQt5提供了多种布局管理器来满足不同的布局需求。

1. 水平布局(QHBoxLayout)

QHBoxLayout 排列控件在水平方向上。控件按添加的顺序从左到右排列。

from PyQt5.QtWidgets import QWidget, QHBoxLayout, QPushButton

widget = QWidget()
hbox = QHBoxLayout()

hbox.addWidget(QPushButton('Button 1'))
hbox.addWidget(QPushButton('Button 2'))
hbox.addWidget(QPushButton('Button 3'))

widget.setLayout(hbox)
widget.show()

2. 垂直布局(QVBoxLayout)

QVBoxLayout 在垂直方向上排列控件。控件按添加的顺序从上到下排列。

from PyQt5.QtWidgets import QWidget, QVBoxLayout, QPushButton

widget = QWidget()
vbox = QVBoxLayout()

vbox.addWidget(QPushButton('Button 1'))
vbox.addWidget(QPushButton('Button 2'))
vbox.addWidget(QPushButton('Button 3'))

widget.setLayout(vbox)
widget.show()

3. 网格布局(QGridLayout)

QGridLayout 允许你以网格方式排列控件。你可以指定控件的行和列。

from PyQt5.QtWidgets import QWidget, QGridLayout, QPushButton

widget = QWidget()
grid = QGridLayout()

grid.addWidget(QPushButton('Button 1'), 0, 0)
grid.addWidget(QPushButton('Button 2'), 0, 1)
grid.addWidget(QPushButton('Button 3'), 1, 0)
grid.addWidget(QPushButton('Button 4'), 1, 1)

widget.setLayout(grid)
widget.show()

4. 表单布局(QFormLayout)

QFormLayout 是为表单设计的,它以两列方式排列控件:左列是标签,右列是对应的字段(如文本框)。

from PyQt5.QtWidgets import QWidget, QFormLayout, QLineEdit, QLabel

widget = QWidget()
form = QFormLayout()

form.addRow(QLabel('Name:'), QLineEdit())
form.addRow(QLabel('Age:'), QLineEdit())
form.addRow(QLabel('Job:'), QLineEdit())

widget.setLayout(form)
widget.show()

5. 堆叠布局(QStackedLayout)

QStackedLayout 允许你堆叠多个控件在同一个位置,然后选择一个控件进行显示。

from PyQt5.QtWidgets import QWidget, QStackedLayout, QPushButton

widget = QWidget()
stack = QStackedLayout()

stack.addWidget(QPushButton('Button 1'))
stack.addWidget(QPushButton('Button 2'))
stack.addWidget(QPushButton('Button 3'))

# 设置当前显示的控件索引
stack.setCurrentIndex(1)

widget.setLayout(stack)
widget.show()

6. 自定义布局

可以通过继承 QLayout 类来创建自定义布局管理器,为特定的布局需求提供解决方案。

使用布局管理器的优点

  • 自动调整:当窗口大小改变时,布局管理器会自动调整控件的大小和位置。
  • 国际化:布局管理器会考虑不同语言的文本长度变化。
  • 容易修改:使用布局管理器可以让你在不改变布局逻辑的情况下添加、移除或重新排列控件。

正确使用布局管理器是创建专业和易用GUI的关键。布局管理器的选择取决于你的具体需求和期望的界面布局。

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值