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中的greenlet包实现并发编程的入门教程
Apr 16 Python
python进行两个表格对比的方法
Jun 27 Python
浅谈Python traceback的优雅处理
Aug 31 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python中请不要再用re.compile了
Jun 30 Python
基于Python中的yield表达式介绍
Nov 19 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python数据抓取3种方法总结
Feb 07 Python
详解Django的MVT设计模式
Apr 29 Python
Python快速优雅的批量修改Word文档样式
May 20 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学习之PHP表达式
2006/10/09 PHP
PHP脚本的10个技巧(2)
2006/10/09 PHP
PHP中,文件上传
2006/12/06 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
javascript 面向对象编程基础:继承
2009/08/21 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Mac下安装vue
2018/04/11 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
vue--vuex详解
2019/04/15 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
python实现KNN近邻算法
2020/12/30 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
教师节商场活动方案
2014/02/13 职场文书
《手指教学》反思
2014/02/14 职场文书
食品安全宣传标语
2014/06/07 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
Python采集股票数据并制作可视化柱状图
2022/04/04 Python
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers