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 快速排序代码
Nov 23 Python
python3编写C/S网络程序实例教程
Aug 25 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Python打印斐波拉契数列实例
Jul 07 Python
python 写入csv乱码问题解决方法
Oct 23 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
python中的turtle库函数简单使用教程
Jul 23 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
Django choices下拉列表绑定实例
Mar 13 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
Python: glob匹配文件的操作
Dec 11 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/03/02 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
nodeJS微信分享
2017/12/20 NodeJs
代码详解JS操作剪贴板
2018/02/11 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
python多线程http压力测试脚本
2019/06/25 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
django rest framework 自定义返回方式
2020/07/12 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
会计专业自荐信范文
2013/12/02 职场文书
成品库仓管员岗位职责
2014/04/06 职场文书
趵突泉导游词
2015/02/03 职场文书
教师病假条范文
2015/08/17 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
小学数学教学反思范文
2016/02/16 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
如何使用pdb进行Python调试
2021/06/30 Python
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电