Pyqt5中5种布局的实现示例

 更新时间:2025年09月15日 10:33:08   作者:CClaris  
本文介绍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的关键。布局管理器的选择取决于你的具体需求和期望的界面布局。

到此这篇关于Pyqt5中5种布局的实现示例的文章就介绍到这了,更多相关Pyqt5 布局内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python机器学习之KNN分类算法

    python机器学习之KNN分类算法

    这篇文章主要为大家详细介绍了python机器学习之KNN分类算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Python传统图像处理之皮肤区域检测详解

    Python传统图像处理之皮肤区域检测详解

    这篇文章主要介绍了在不同情景下对传统图像进行皮肤区域检测,文章中的代码具有一定的参考价值,感兴趣的小伙伴可以跟随小编一起来学习学习
    2021-12-12
  • Pandas-Cookbook 时间戳处理方式

    Pandas-Cookbook 时间戳处理方式

    今天小编就为大家分享一篇Pandas-Cookbook 时间戳处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python如何实时获取tcpdump输出

    python如何实时获取tcpdump输出

    这篇文章主要介绍了python如何实时获取tcpdump输出,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • 在Pycharm中将pyinstaller加入External Tools的方法

    在Pycharm中将pyinstaller加入External Tools的方法

    今天小编就为大家分享一篇在Pycharm中将pyinstaller加入External Tools的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python协程之yield和yield from实例详解

    python协程之yield和yield from实例详解

    Python在并发处理上不仅提供了多进程和多线程的处理,还包括了协程,下面这篇文章主要给大家介绍了关于python协程之yield和yield from的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 简单介绍Python中的JSON使用

    简单介绍Python中的JSON使用

    这篇文章主要介绍了Python中的JSON使用,示例代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • 聊聊Python中的@符号是什么意思

    聊聊Python中的@符号是什么意思

    @符号用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,下面这篇文章主要给大家介绍了关于Python中@符号是什么意思的相关资料,需要的朋友可以参考下
    2021-09-09
  • Python datetime 模块常用功能(轻松搞定时间处理)

    Python datetime 模块常用功能(轻松搞定时间处理)

    Python的datetime模块是处理日期时间的核心工具,包含date、time、datetime、timedelta四大类,用于获取当前时间、格式转换、时间计算及时区处理,解决常见时间问题,适用于日志记录、数据处理等场景,本文介绍Python datetime 模块常用功能,感兴趣的朋友一起看看吧
    2025-07-07
  • python之生产者消费者模型实现详解

    python之生产者消费者模型实现详解

    这篇文章主要介绍了python之生产者消费者模型实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论