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使用CMD模块更优雅的运行脚本
May 11 Python
Python3爬楼梯算法示例
Mar 04 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
python频繁写入文件时提速的方法
Jun 26 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python网络编程:socketserver的基本使用方法实例分析
Apr 09 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
python是怎么被发明的
Jun 15 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 Python
python高温预警数据获取实例
Jul 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/05/10 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
九种原生js动画效果
2015/11/11 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Django多数据库的实现过程详解
2019/08/01 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
python序列化与数据持久化实例详解
2019/12/20 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
解放思想大讨论活动总结
2015/05/09 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
springboot实现string转json json里面带数组
2022/06/16 Java/Android