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中处理时间的几种方法小结
Apr 09 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
python获取文件扩展名的方法
Jul 06 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
教大家使用Python SqlAlchemy
Feb 12 Python
Fabric 应用案例
Aug 28 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
我就是这样学习Python中的列表
Jun 02 Python
Python requests模块cookie实例解析
Apr 14 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 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
php xml 入门学习资料
2011/01/01 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
laydate日历控件使用方法详解
2017/11/20 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
给海归自荐信的建议
2013/12/13 职场文书
小学教育见习总结
2015/06/23 职场文书
Nginx服务器如何设置url链接
2021/03/31 Servers
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js