python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例


Posted in Python onMarch 06, 2020

PyQt5布局控件QVBoxLayout简介

采用QVBoxLayout类,按照从上到下的顺序添加控件

本节内容较少,演示两个实例,便于明白QVBoxLayout(垂直布局)的使用

QVBoxLayout的正常使用实例

import sys
from PyQt5.QtWidgets import QApplication ,QWidget ,QVBoxLayout , QPushButton
class Winform(QWidget):
  def __init__(self,parent=None):
    super(Winform,self).__init__(parent)
    self.setWindowTitle("垂直布局管理例子") 
    self.resize(330, 150) 
    # 垂直布局按照从上到下的顺序进行添加按钮部件。
    vlayout = QVBoxLayout()
    vlayout.addWidget( QPushButton(str(1)))
    vlayout.addWidget( QPushButton(str(2)))
    vlayout.addWidget( QPushButton(str(3)))
    vlayout.addWidget( QPushButton(str(4)))
    vlayout.addWidget( QPushButton(str(5)))
    self.setLayout(vlayout)  
if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    form = Winform()
    form.show()
    sys.exit(app.exec_())

运行效果示意图

python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

addStretch()函数的使用

在布局中要用到addStretch()函数,设置stretch伸缩量后,按比例分配剩余的空间

函数 描述
QBoxLayout.addStretch(int stretch=0) addStretch()函数在布局管理器中添加一个可伸缩的控件(QSpaceItem),0为最小值,并且将stretch作为伸缩量添加到布局末尾,stretch参数表示均分的比例,默认为0

addStretch在QVBoxLayout的使用实例

一个布局管理器中,有三个按钮,要求界面不随着父控件的伸缩而改变

from PyQt5.QtWidgets import QApplication ,QWidget, QVBoxLayout , QHBoxLayout ,QPushButton
import sys 
class WindowDemo(QWidget): 
  def __init__(self ): 
    super().__init__()
    btn1 = QPushButton(self)
    btn2 = QPushButton(self)
    btn3 = QPushButton(self)   
    btn1.setText('button 1')
    btn2.setText('button 2')
    btn3.setText('button 3')
    hbox = QHBoxLayout()
    # 设置伸缩量为1
    hbox.addStretch(1)
    hbox.addWidget( btn1 )
    # 设置伸缩量为1
    hbox.addStretch(1)
    hbox.addWidget( btn2 )
    # 设置伸缩量为1
    hbox.addStretch(1)
    hbox.addWidget( btn3 )
    # 设置伸缩量为1
    hbox.addStretch(1 )    
    self.setLayout(hbox)
    self.setWindowTitle("addStretch 例子")
if __name__ == "__main__": 
  app = QApplication(sys.argv) 
  win = WindowDemo() 
  win.show() 
  sys.exit(app.exec_())

运行程序,初始效果图如下

python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

拉伸后效果图如下

python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

从上面的代码可以看出,四个addStretch()函数用于在按钮间随着伸缩量,伸缩量的比例为1:1:1:1,意思是将按钮以外的空白地方等分为4分,并按照所设置的顺序放入按钮的布局管理器中,这样在每一个控件之间都添加了伸缩量,所有控件之间的间距都会相同

思考:如果我们只添加一个addStretch()在第一个控件之前或者最后一个控件之后会怎样呢,那么来试试看

探究:addStretch()函数放在第一个空间之前

import sys
from PyQt5.QtWidgets import QApplication ,QWidget ,QHBoxLayout , QPushButton
class Winform(QWidget):
  def __init__(self,parent=None):
    super(Winform,self).__init__(parent)
    self.setWindowTitle("水平布局管理例子") 
    self.resize(800, 50)
    # 水平布局按照从左到右的顺序进行添加按钮部件。
    hlayout = QHBoxLayout() 
    # 添加伸缩   
    hlayout.addStretch(0)
    hlayout.addWidget( QPushButton(str(1)) )
    hlayout.addWidget( QPushButton(str(2)) )
    hlayout.addWidget( QPushButton(str(3)))
    hlayout.addWidget( QPushButton(str(4)) )    
    hlayout.addWidget( QPushButton(str(5)) )  
    # 添加伸缩   
    #hlayout.addStretch(1)
    self.setLayout(hlayout)  
if __name__ == "__main__": 
  app = QApplication(sys.argv) 
  form = Winform()
  form.show()
  sys.exit(app.exec_())

运行效果图

python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

结果显示,这样所有的控件都会向右显示,

那么类似的放在最后一个控件之后,都会向左显示,

本文主要介绍了PyQt5布局控件QVBoxLayout详细使用方法与实例,更多关于PyQt5布局控件的使用知识请查看下面的相关链接

Python 相关文章推荐
python使用socket远程连接错误处理方法
Apr 29 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
Feb 12 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 #Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 #Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 #Python
Python yield的用法实例分析
Mar 06 #Python
用Python生成HTML表格的方法示例
Mar 06 #Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 #Python
Python修改列表值问题解决方案
Mar 06 #Python
You might like
PHP文件读写操作之文件写入代码
2011/01/13 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
微信小程序实现循环动画效果
2018/07/16 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python单元测试简单示例
2018/07/03 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
促销活动计划书
2014/05/02 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
管辖权异议上诉状
2015/05/23 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
PHP中->和=>的意思
2021/03/31 PHP
解决pytorch-gpu 安装失败的记录
2021/05/24 Python