Pyqt5自适应布局实例

 更新时间:2019年12月13日 18:33:24   作者:fengtangzheng  
今天小编就为大家分享一篇Pyqt5自适应布局实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在pyqt5中要做到自适应布局,必须应用Layout类

下面列出类似于 html 中 float 功能的布局方法:

实现原理: PyQt5中的布局中,stretch 属性类似于一个可自适应的空白布局。会尽可能将周围的组件布局向外挤压

from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout


# 垂直居中
def vcenter_layout(*widgets):
  vbox = QVBoxLayout()
  vbox.addStretch()
  for widget in widgets:
    vbox.addWidget(widget)
  vbox.addStretch()
  return vbox


# 水平居中
def hcenter_layout(*widgets):
  hbox = QHBoxLayout()
  hbox.addStretch()
  for widget in widgets:
    hbox.addWidget(widget)
  hbox.addStretch()
  return hbox


# 垂直水平居中
def center_layout(widget):
  hbox = QHBoxLayout()
  hbox.addStretch()
  hbox.addWidget(widget)
  hbox.addStretch()

  vbox = QVBoxLayout()
  vbox.addStretch()
  vbox.addLayout(hbox)
  vbox.addStretch()
  return vbox


# 居左
def left_layout(*widgets):
  hbox = QHBoxLayout()
  for widget in widgets:
    hbox.addWidget(widget)
  hbox.addStretch()
  return hbox


# 居右
def right_layout(*widgets):
  hbox = QHBoxLayout()
  hbox.addStretch()
  for widget in widgets:
    hbox.addWidget(widget)
  return hbox


# 向上靠齐
def top_layout(*widgets):
  vbox = QVBoxLayout()
  for widget in widgets:
    vbox.addWidget(widget)
  vbox.addStretch()
  return vbox


# 向下靠齐
def bottom_layout(*widgets):
  vbox = QVBoxLayout()
  vbox.addStretch()
  for widget in widgets:
    vbox.addWidget(widget)
  return vbox


# 正常垂直分布
def v_layout(*widgets):
  vbox = QVBoxLayout()
  for widget in widgets:
    vbox.addWidget(widget)
  return vbox


# 正常垂直分布
def h_layout(*widgets):
  vbox = QHBoxLayout()
  for widget in widgets:
    vbox.addWidget(widget)
  return vbox

基本上,大的布局通过上面的方法即可实现,细节可能还需要调整 margin 或者 spacing

以上这篇Pyqt5自适应布局实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • pyspark dataframe列的合并与拆分实例

    pyspark dataframe列的合并与拆分实例

    这篇文章主要介绍了pyspark dataframe列的合并与拆分实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • python操作MySQL的详细教程

    python操作MySQL的详细教程

    PyMySQL 是一个纯 Python 的库,用于连接 MySQL 数据库,并执行 SQL 语句,该库的主要用途是通过 Python 代码与 MySQL 数据库进行交互,比如执行查询、插入数据、更新数据、删除数据等操作,本文介绍了python操作MySQL的详细教程,需要的朋友可以参考下
    2024-10-10
  • Python+Appium实现自动抢微信红包

    Python+Appium实现自动抢微信红包

    不知从何时开始微信红包横空出世,对于网速和手速慢的人只能在一旁观望,做为python的学习者就是要运用编程解决生活和工作上的事情。于是我用python解决我们的手速问题python实现自动抢微信红包,至于网速慢得那就只能自己花钱提升了。
    2021-05-05
  • 关于pyqtSignal的基本使用

    关于pyqtSignal的基本使用

    这篇文章主要介绍了关于pyqtSignal的基本使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Python使用Shelve保存对象方法总结

    Python使用Shelve保存对象方法总结

    在本篇文章里我们给大家分享的是关于Python使用Shelve保存对象的知识点总结,有兴趣的朋友们学习下。
    2019-01-01
  • 安装pytorch时报sslerror错误的解决方案

    安装pytorch时报sslerror错误的解决方案

    这篇文章主要介绍了安装pytorch时报sslerror错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python3制作捧腹网段子页爬虫

    python3制作捧腹网段子页爬虫

    网上的Python教程大都是2.X版本的,python2.X和python3.X相比较改动比较大,好多库的用法不太一样,我安装的是python3.X,我们来看看详细的例子
    2017-02-02
  • python中三种输出格式总结(%,format,f-string)

    python中三种输出格式总结(%,format,f-string)

    在Python语言编程中,我们会与字符串打交道,那务必会输出字符串来查看字符串的内容,下面这篇文章主要给大家介绍了关于python中三种输出格式的相关资料,三种格式分别是%,format,f-string,需要的朋友可以参考下
    2022-03-03
  • PyQt5每天必学之进度条效果

    PyQt5每天必学之进度条效果

    这篇文章主要为大家详细介绍了PyQt5实现进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Django中的ORM详解(最新推荐)

    Django中的ORM详解(最新推荐)

    Django ORM是一种用于操作数据库的高级工具,它允许开发者通过Python代码来管理数据库模型和执行查询,而无需直接编写SQL语句,ORM的主要优势是提高了开发效率,但也会牺牲一定的执行效率,本文介绍Django的ORM详解,感兴趣的朋友一起看看吧
    2025-03-03

最新评论