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 正则式使用心得
May 07 Python
Python学习笔记(二)基础语法
Jun 06 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
python中的编码知识整理汇总
Jan 26 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python面向对象之继承代码详解
Jan 29 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Django数据模型中on_delete使用详解
Nov 30 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 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
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
概述BootStrap中role="form"及role作用角色
2016/12/08 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
2017/04/27 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
Python random模块常用方法
2014/11/03 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python求出0~100以内的所有素数
2018/01/23 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
python3中确保枚举值代码分析
2020/12/02 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
什么是类的返射机制
2016/02/06 面试题
销售人员获奖感言
2014/02/05 职场文书
安全责任书范本
2014/04/15 职场文书
解除处分决定书
2015/06/25 职场文书
高质量“欢迎词”
2019/04/03 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
SpringBoot集成Redis的思路详解
2021/10/16 Redis
我收到了德劲DE1107
2022/04/05 无线电
Vue router配置与使用分析讲解
2022/12/24 Vue.js