当前位置: 首页 > news >正文

PyQt5布局管理(QBoxLayout(框布局))

QBoxLayout(框布局)

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

QHBoxLayout(水平布局)

采用QHBoxLayout类,按照从左到右的顺序来添加控件。QHBoxLayout类中的
常用方法如表6-1所示。

方法描述
addLayout(self,QLayout,stretch=0)在窗口的右边添加布局,使用stretc(伸缩量)进行伸,
伸缩量默认为0
addWidget(self,QWidget,stretch,Qt.Alignment alignment)在布局中添加控件:- stretch(伸缩量),只适用于QBoxLayout,控件和窗口会随着伸缩量的变大而增大- alignment,指定对齐的方式
addSpacing(self,int)设置各控件的上下间距.通过该方法可以增加额外的空间
QHBoxLayout类的继承结构如下:
在创建QHBoxLayout布局时用到的对齐方式参数如表6-2所示。
参数描述
Qt.AlignLeft水平方向居左对齐
Qt.AlignRight水平方向居右对齐
Qt.AlignCenter水平方向居中对齐
Qt.ALignJustify水平万向两端对齐
Qt.AlignTop重直方向上对齐
Qt.AlignBottom垂直方向靠下对齐
Qt.AlignVCenter垂直方向居中对齐
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QHBoxLayout,QPushButtonclass 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)))self.setLayout(hlayout)if __name__ == '__main__':app = QApplication(sys.argv)form = Winform()form.show()sys.exit(app.exec_())

运行结果

image

QVBoxLayout(垂直布局)

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QPushButtonclass Winform(QWidget):def __init__(self,parent=None):super(Winform,self).__init__(parent)self.setWindowTitle("垂直布局管理例子")self.resize(330,150)#垂直布局按照从上到下的顺序进行添加按钮部件vlayout = QVBoxLayout()vlayout.addWidget(QPushButton(str(1)))vlayout.addWidget(QPushButton(str(2)))vlayout.addWidget(QPushButton(str(3)))vlayout.addWidget(QPushButton(str(4)))vlayout.addWidget(QPushButton(str(5)))self.setLayout(vlayout)if __name__ == '__main__':app = QApplication(sys.argv)form=Winform()form.show()sys.exit(app.exec_())

运行结果

image

addStretch()函数的使用

在布局时要用到addStretch()函数。设置stretch伸缩量后,按比例分配剩余空间。
addStretch()函数的具体使用请参考表6-3。

函数描述
QBoxLayout.addStretch(int stretch=0)addStretch()函数在布局管理器中增能一个可伸缩的控件(QSpaceItem),0
为最小值,并且将stretch作为伸缩量添加到布局末尾
streteh参数表示均分的比例,默认值为0
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton
import sysclass WindowDemo(QWidget):def __init__(self):super().__init__()btn1 = QPushButton(self)btn2 = QPushButton(self)btn3 = QPushButton(self)btn1.setText('button 1')btn2.setText('button 2')btn3.setText('button 3')hbox = QHBoxLayout()# 设置伸缩量为1hbox.addStretch(1)hbox.addWidget(btn1)# 设置伸缩量为1hbox.addStretch(1)hbox.addWidget(btn2)# 设置伸缩量为1hbox.addStretch(1)hbox.addWidget(btn3)# 设置伸缩量为1hbox.addStretch(1)self.setLayout(hbox)self.setWindowTitle("addStretch 例子")if __name__ == "__main__":app = QApplication(sys.argv)win = WindowDemo()win.show()sys.exit(app.exec_())

运行结果

image

http://www.dtcms.com/a/275758.html

相关文章:

  • 企业商业秘密保卫战:经营信息类案件维权全攻略
  • WildCard野卡已跑路(包含gpt plus升级方案)
  • C++结构体嵌套
  • Datawhale AI夏令营 MCP初体验——简历小助手
  • DeepSeek-Qwen蒸馏模型解析
  • 苍穹外卖-day06
  • 自助空间系统迭代历程|自助门店运营系统全新升级
  • AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kimi‑K2开源大模型解读与实践
  • 电子电气架构 --- ECU存储与计算资源冗余设计规范
  • 实习内容总结
  • 笔记/了解未来:财务建模与预测
  • 系统思考助力转型
  • Git企业级开发(最终篇)
  • 【PTA数据结构 | C语言版】车厢重排
  • JDBC 事务控制详解:保障数据安全的完整指南
  • ​Windows API 介绍及核心函数分类表
  • 使用langgraph 构建RAG 智能问答代理
  • Kotlin文件
  • 【GESP】C++ 2025年6月一级考试-客观题真题解析
  • 小学家长和老师最喜欢的出题神器!
  • 大模型量化相关
  • 二分法寻找无序序列的峰值
  • 【Scratch】从入门到放弃(五):指令大全-运算、变量、自制积木
  • 第14次课 认识图 A
  • 一分钟快速了解Apache
  • 阿里开源AI大模型ThinkSound如何为视频配上灵魂之声
  • 分层架构的C++高并发内存池性能优化
  • 【PTA数据结构 | C语言版】出栈序列的合法性
  • Paimon Lookup 哈希文件和Sort文件选择
  • 粒子滤波|粒子滤波的相关算法理论介绍