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


Posted in Python onMarch 06, 2020

PyQt5布局控件QHBoxLayout简介

采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout

采用QHBoxLayout类,按照从左到右的顺序来添加控件

QHBoxLayout类中常用的方法如下

方法 描述
addLayout(self,stretch=0) 在窗口的右边添加布局,使用stretch(伸缩量)进行伸缩,伸缩量默认为0
addWidget(self,QWidget.stretch,Qt.Alignmeny alihnment) 在布局中添加控件
stretch(伸缩量),只适用于QBoxLayout,控件和窗口会随着伸缩量的变大而增大
alignment:指定的对齐方式
addSpacing(self,int) 设置各控件的上下间距,通过该方法可以增加额外的控件

QHBoxLayout对齐方式参数

参数 描述
Qt.AlignLeft 水平方向居左对齐
Qt.AlignRight水平方向具有对齐
Qt.AlignCenter 水平方向居中对齐
Qt.AlignJustify 水平方向两端对齐
Qt.AlignTop 垂直方向靠上对齐
Qt.AlignBottom 垂直方向靠下对齐
Qt.AlignVCenter 垂直方向居中对齐

QHBoxLayout水平布局管理实例

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("水平布局管理例子") 
    # 水平布局按照从左到右的顺序进行添加按钮部件。
    hlayout = QHBoxLayout()    
    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)))    
    # todo 优化1 设置控件间距
    #hlayout.setSpacing(20)
    self.setLayout(hlayout)  
if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    form = Winform()
    form.show()
    sys.exit(app.exec_())

运行效果图

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

优化一:设置各控件之间的间距

hlayout.setSpacing(20)

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

QHBoxLayout水平布局对齐方式实例

在某些情况下,需要将布局中的某些控件居中,俱下显示,那么可以通过对齐方式参数Qt.Alignment来设置,示范如下

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

运行效果图如下

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

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

Python 相关文章推荐
Python中实现对list做减法操作介绍
Jan 09 Python
Python中暂存上传图片的方法
Feb 18 Python
浅谈Python的异常处理
Jun 19 Python
json跨域调用python的方法详解
Jan 11 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python3.5基于TCP实现文件传输
Mar 20 Python
Python实现的各种常见分布算法示例
Dec 13 Python
python GUI实现小球满屏乱跑效果
May 09 Python
django 解决扩展自带User表遇到的问题
May 14 Python
详解scrapy内置中间件的顺序
Sep 28 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 Python
总结三种用 Python 作为小程序后端的方式
May 02 Python
Python yield的用法实例分析
Mar 06 #Python
用Python生成HTML表格的方法示例
Mar 06 #Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 #Python
Python修改列表值问题解决方案
Mar 06 #Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 #Python
python-xpath获取html文档的部分内容
Mar 06 #Python
关于python中的xpath解析定位
Mar 06 #Python
You might like
基于mysql的bbs设计(一)
2006/10/09 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
jQuery之日期选择器的深入解析
2013/06/19 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
匡威帆布鞋美国官网:Converse美国
2016/08/22 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
汽车装潢店创业计划书范文
2014/02/05 职场文书
演讲主持词
2014/03/18 职场文书
《四季》教学反思
2014/04/08 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
群教班子对照检查材料
2014/08/26 职场文书
机关党员公开承诺书
2014/08/30 职场文书
医药销售自我评价200字
2014/09/11 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
小学教学工作总结2015
2015/05/13 职场文书
详解OpenCV曝光融合
2022/04/29 Python