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 布局内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pandas-Cookbook 时间戳处理方式

    Pandas-Cookbook 时间戳处理方式

    今天小编就为大家分享一篇Pandas-Cookbook 时间戳处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 用Python简单实现Http服务端

    用Python简单实现Http服务端

    这篇文章主要为大家介绍了使用Python简单实现Http服务端示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • python模拟鼠标拖动操作的方法

    python模拟鼠标拖动操作的方法

    这篇文章主要介绍了python模拟鼠标拖动操作的方法,实例分析了Python鼠标操作及键位操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Python利用tenacity库处理超时重试机制详解

    Python利用tenacity库处理超时重试机制详解

    Python 的 tenacity 库用于实现重试机制,特别适合处理网络不稳定或其他意外错误导致的函数调用失败,下面我们就来看看它的具体使用吧
    2025-02-02
  • python 求定积分和不定积分示例

    python 求定积分和不定积分示例

    今天小编就为大家分享一篇python 求定积分和不定积分示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 使用Python开发一个智能桌面单词记忆工具

    使用Python开发一个智能桌面单词记忆工具

    在英语学习过程中,高频重复是记忆单词的关键,本文将使用Python和PyQt5打造一个智能桌面单词记忆工具,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • Python实现字符串与数组相互转换功能示例

    Python实现字符串与数组相互转换功能示例

    这篇文章主要介绍了Python实现字符串与数组相互转换功能,结合具体实例形式分析了Python字符串与数组相关转换功能的相关实现技巧与注意事项,需要的朋友可以参考下
    2017-09-09
  • python OpenCV 图像通道数判断

    python OpenCV 图像通道数判断

    这篇文章主要介绍了python OpenCV 图像通道数判断,文章基于Python的相关内容展开对文章主题的详细介绍,需要的小伙伴可以参考一下
    2022-04-04
  • Python中的特殊语法:filter、map、reduce、lambda介绍

    Python中的特殊语法:filter、map、reduce、lambda介绍

    这篇文章主要介绍了Python中的特殊语法:filter、map、reduce、lambda介绍,本文分别对这个特殊语法给出了代码实例,需要的朋友可以参考下
    2015-04-04
  • 编写Python脚本来获取mp3文件tag信息的教程

    编写Python脚本来获取mp3文件tag信息的教程

    这篇文章主要介绍了编写Python脚本来获取mp3文件tag信息的教程,代码基于Python2.x,文中的注释很详细,需要的朋友可以参考下
    2015-05-05

最新评论