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学习必备知识汇总
Sep 08 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
Python遍历numpy数组的实例
Apr 04 Python
Python中遍历列表的方法总结
Jun 27 Python
使用python制作一个解压缩软件
Nov 13 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
python实现学生管理系统开发
Jul 24 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
javascript function、指针及内置对象
2009/02/19 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
React Form组件的实现封装杂谈
2018/05/07 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
实现python版本的按任意键继续/退出
2016/09/26 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
set在python里的含义和用法
2019/06/24 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
基于python实现学生信息管理系统
2019/11/22 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
python判断变量是否为列表的方法
2020/09/17 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
软件配置管理有什么好处
2015/04/15 面试题
Lucene推荐的分页方式是什么?
2015/12/07 面试题
五一促销活动总结
2014/07/01 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
单位授权委托书范本
2014/09/26 职场文书
创业计划书之物流运送
2019/09/17 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL