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实现提取百度搜索结果的方法
May 19 Python
深入分析python中整型不会溢出问题
Jun 18 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
Python如何用filter函数筛选数据
Mar 05 Python
python爬取youtube视频的示例代码
Mar 03 Python
python实现调用摄像头并拍照发邮箱
Apr 27 Python
Python基础之元类详解
Apr 29 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的单引号和双引号 字符串效率
2009/05/27 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php实现点击可刷新验证码
2015/11/07 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
Python单链表简单实现代码
2016/04/27 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
财务人员个人自荐信范文
2013/09/26 职场文书
护士个人总结范文
2015/02/13 职场文书
小学班长竞选稿
2015/11/20 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
python基础之错误和异常处理
2021/10/24 Python