PyQt5布局管理之QHBoxLayout(一)

PyQt5布局管理之QHBoxLayout(一)

QHBoxLayout

前言

采用QBOXLayout类可以在水平和垂直方向上排列控件,QHBoxLayout和QVBoxLayout类继承自QBoxLayout 采用QHBoxLayout类,按照从左到右的顺序来添加控件

QHBoxLayout类中常用的方法如下

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

对齐方式参数

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

实例:水平布局管理的例子

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_())

运行效果图

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

hlayout.setSpacing(20)

实例二:水平布局对齐方式的使用

在某些情况下,需要将布局中的某些控件居中,俱下显示,那么可以通过对齐方式参数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_())

运行效果图如下

QHBoxLayout

前言QHBoxLayout类中常用的方法如下对齐方式参数实例:水平布局管理的例子

优化一:设置各控件之间的间距 实例二:水平布局对齐方式的使用

相关推荐

各大手机厂商新机更新周期汇总,买手机别再错过好时机
365bet取款要多久到账

各大手机厂商新机更新周期汇总,买手机别再错过好时机

📅 08-16 👁️ 1672
龙息神寂🔥英雄祝福选择全攻略🎉
365bet取款要多久到账

龙息神寂🔥英雄祝福选择全攻略🎉

📅 06-27 👁️ 6983
十大代驾app排行榜
365BET导航

十大代驾app排行榜

📅 07-25 👁️ 9089
鬼王50多个20星宠物,刻誓成果持续更新中
365BET导航

鬼王50多个20星宠物,刻誓成果持续更新中

📅 08-27 👁️ 1379
Windows XP系统安装教程~保姆级附带截图
365BET导航

Windows XP系统安装教程~保姆级附带截图

📅 07-30 👁️ 6800
探秘雏菊的花开时间(从播种到开花需要多久?)
女篮世界杯亚军!迪拉娜!新疆姑娘!
365BET导航

女篮世界杯亚军!迪拉娜!新疆姑娘!

📅 09-05 👁️ 4029
判断手机是否为翻新机的五大方法:外观观察、系统识别、手感体验、配件辨别和
iPhone 听筒进水了?用 Sonic 把水「震」出来
365bet最快线路监测中心

iPhone 听筒进水了?用 Sonic 把水「震」出来

📅 08-06 👁️ 8139
机场接机软件推荐:便捷高效,让旅程更顺心
优质手机QQ空间个性赞在哪里?怎么查看怎么设置?
365bet最快线路监测中心

优质手机QQ空间个性赞在哪里?怎么查看怎么设置?

📅 09-06 👁️ 3177
永兴县位置图,区位图、永兴在哪里
365bet取款要多久到账

永兴县位置图,区位图、永兴在哪里

📅 09-08 👁️ 3108