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的else子句使用指南
Feb 27 Python
python生成圆形图片的方法
Mar 25 Python
通过python顺序修改文件名字的方法
Jul 11 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
Python装饰器基础概念与用法详解
Dec 22 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
利用python实现周期财务统计可视化
Aug 25 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
python飞机大战游戏实例讲解
Dec 04 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 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
星际实力自我测试
2020/03/04 星际争霸
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
python实现将excel文件转化成CSV格式
2018/03/22 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python爬虫之自制英汉字典
2019/06/24 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
实验心得体会
2014/09/05 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL