PyQt5 页面布局

本文介绍了PyQt5中常用的四种布局管理器:水平布局(QHBoxLayout)、垂直布局(QVBoxLayout)、网格布局(QGridLayout)和表单布局(QFormLayout),展示了它们的基本用法和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在PyQt5中,页面布局是通过布局管理器(Layout Managers)来实现的,这些布局管理器能够自动调整窗口组件的位置和大小,以适应窗口尺寸的变化。以下是几种常用的布局方式及其基本使用方法:

1. QHBoxLayout(水平布局)

水平布局会将子控件从左到右排列。


python

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QHBoxLayout

app = QApplication([])

window = QWidget()
layout = QHBoxLayout()

label = QLabel("Hello, PyQt5!")
button = QPushButton("Click me!")

layout.addWidget(label)  # 在水平布局中添加标签
layout.addWidget(button)  # 在水平布局中添加按钮

window.setLayout(layout)  # 设置窗口的布局为水平布局
window.show()

app.exec_()

 

2. QVBoxLayout(垂直布局)

垂直布局会将子控件从上到下排列。


python

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout

app = QApplication([])

window = QWidget()
layout = QVBoxLayout()

label = QLabel("Vertical Layout Example")
button = QPushButton("Button 1")
button2 = QPushButton("Button 2")

layout.addWidget(label)  # 在垂直布局中添加标签
layout.addWidget(button)  # 在垂直布局中添加按钮1
layout.addWidget(button2)  # 在垂直布局中添加按钮2

window.setLayout(layout)  # 设置窗口的布局为垂直布局
window.show()

app.exec_()

 

3. QGridLayout(网格布局)

网格布局允许你以网格的形式放置控件,指定每个控件所在的行和列。


python

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QGridLayout

app = QApplication([])

window = QWidget()
layout = QGridLayout()

label1 = QLabel("1, 1")
label2 = QLabel("1, 2")
button = QPushButton("2, 1")

layout.addWidget(label1, 0, 0)  # 第一行第一列
layout.addWidget(label2, 0, 1)  # 第一行第二列
layout.addWidget(button, 1, 0)  # 第二行第一列

window.setLayout(layout)
window.show()

app.exec_()

 

4. QFormLayout(表单布局)

表单布局常用于创建带有标签和输入字段的表单。


python

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

app = QApplication([])

window = QWidget()
layout = QFormLayout()

name_label = QLabel("Name:")
name_field = QLineEdit()

layout.addRow(name_label, name_field)  # 添加行:标签和输入框

window.setLayout(layout)
window.show()

app.exec_()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

如果这篇文章帮您解决了技术难题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值