PyQt5 页面布局

本文介绍了PyQt5中常用的四种布局管理器:水平布局(QHBoxLayout)、垂直布局(QVBoxLayout)、网格布局(QGridLayout)和表单布局(QFormLayout),展示了它们的基本用法和应用场景。
摘要由CSDN通过智能技术生成

在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_()

 

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PyQt5 中,可以使用 QStackedWidget 控件来实现页面跳转功能。 QStackedWidget 是一个堆叠窗口控件,可以显示多个子控件,但是只有一个子控件是可见的。通过在子控件之间切换,可以实现页面跳转的效果。 下面是一个简单的例子,展示了如何使用 QStackedWidget 实现页面跳转功能: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QLabel, QStackedWidget class MainWindow(QWidget): def __init__(self): super().__init__() # 创建 QStackedWidget 控件 self.stacked_widget = QStackedWidget() # 创建两个页面并添加到 stacked_widget 控件中 self.page1 = Page1() self.stacked_widget.addWidget(self.page1) self.page2 = Page2() self.stacked_widget.addWidget(self.page2) # 创建按钮,用于切换页面 self.button1 = QPushButton("Page 1") self.button1.clicked.connect(self.show_page1) self.button2 = QPushButton("Page 2") self.button2.clicked.connect(self.show_page2) # 创建垂直布局,并将按钮和 stacked_widget 控件添加到布局中 layout = QVBoxLayout() layout.addWidget(self.button1) layout.addWidget(self.button2) layout.addWidget(self.stacked_widget) self.setLayout(layout) def show_page1(self): # 切换到第一个页面 self.stacked_widget.setCurrentWidget(self.page1) def show_page2(self): # 切换到第二个页面 self.stacked_widget.setCurrentWidget(self.page2) class Page1(QWidget): def __init__(self): super().__init__() # 创建标签,并将其添加到页面中 self.label = QLabel("This is Page 1") layout = QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) class Page2(QWidget): def __init__(self): super().__init__() # 创建标签,并将其添加到页面中 self.label = QLabel("This is Page 2") layout = QVBoxLayout() layout.addWidget(self.label) self.setLayout(layout) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 运行上述代码,会显示一个窗口,其中包含两个按钮和一个 QStackedWidget 控件。单击不同的按钮,可以切换到不同的页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

三希

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值