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实现的一个火车票转让信息采集器
Jul 09 Python
python re正则表达式模块(Regular Expression)
Jul 16 Python
Python 实现简单的电话本功能
Aug 09 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 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输出时间格式
2013/08/31 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
详解React 服务端渲染方案完美的解决方案
2018/12/14 Javascript
JS实现滑动插件
2020/01/15 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
Python Web服务器Tornado使用小结
2014/05/06 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Python中按键来获取指定的值
2019/03/02 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
软件测试常见笔试题
2012/02/04 面试题
新领导上任欢迎词
2014/01/13 职场文书
大学生实习感言
2014/01/16 职场文书
淘宝好评语大全
2014/05/05 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
委托书的写法
2014/09/16 职场文书
2015新学期开学寄语
2015/02/26 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python