Pyqt5自适应布局实例


Posted in Python onDecember 13, 2019

在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自适应布局实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python程序设计入门(1)基本语法简介
Jun 13 Python
详细讲解Python中的文件I/O操作
May 24 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
PYTHON基础-时间日期处理小结
May 05 Python
python实现五子棋小程序
Jun 18 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
Jun 23 Python
安装不同版本的tensorflow与models方法实现
Feb 20 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 #Python
PyQT5 emit 和 connect的用法详解
Dec 13 #Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 #Python
Python assert关键字原理及实例解析
Dec 13 #Python
使用pyqt 实现重复打开多个相同界面
Dec 13 #Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
Dec 13 #Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 #Python
You might like
php 8小时时间差的解决方法小结
2009/12/22 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
JavaScript实现左侧菜单效果
2017/12/14 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
python简单的函数定义和用法实例
2015/05/07 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python表格存取的方法
2018/03/07 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
python命令行参数用法实例分析
2019/06/25 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python 用struct模块解决黏包问题
2020/11/07 Python
python如何修改文件时间属性
2021/02/05 Python
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
法学毕业生自荐信
2013/11/13 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
干部培训工作总结2015
2015/05/25 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
各种货币符号快捷输入
2022/02/17 杂记
Android studio 简单计算器的编写
2022/05/20 Java/Android