目录

1、Qt Designer调整组件布局比例

2、addStretch()函数调整组件布局比例


在一个布局容器中,有时可能需要调整各组件的显示比例,让界面达到更美观效果。

调整组件布局比例有两种办法:第一种是通过Qt Designer调整,另一种是使用addStretch()函数代码调整。

下面让我们来看看吧~

1、Qt Designer调整组件布局比例

在Qt Designer中放置Frame容器,容器中添加3个按钮组件,并进行水平布局设置。

此时可以在layoutStretch属性中设置组件布局比例。

例如,设置三个按钮组件比例是:3:1:1,此时效果如下所示:

分隔组件在GUI显示时是看不出来的,可以通过添加分隔组件(Horizontal Spacer(水平分隔)、Vertical  Spacer(垂直分隔))进行比例调整。

2、addStretch()函数调整组件布局比例

addStretch()函数可以在设置stretch伸缩量后,按比例分配剩余空间。addStretch()函数的具体使用请参考下表:

例如,一个布局管理器中有三个按钮控件,要求界面不随着父控件的伸缩而改变。代码实现如下所示:

from PyQt5.QtWidgets import QApplication ,QWidget, QVBoxLayout , QHBoxLayout  ,QPushButton
import sys  class 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_())

运行效果如下所示:

可见,四个addStretch()函数用于在按钮间设置伸缩量,伸缩量的比例为1:1:1:1,意思是将按钮以外的空白地方等分为4份,并按照所设置的顺序放入按钮的布局管理器中。这样在每一个控件之间就都添加了伸缩量,所有控件之间的间距都会相同。

若在布局中使用addStretch()函数时候,在第一个控件之前添加伸缩控件,这样所有的控件就都会居右显示。代码实现如下所示:

import sys
from PyQt5.QtWidgets import QApplication  ,QWidget ,QHBoxLayout , QPushButtonclass Winform(QWidget):def __init__(self,parent=None):super(Winform,self).__init__(parent)self.setWindowTitle("水平布局管理例子") self.resize(800, 50)# 水平布局按照从左到右的顺序进行添加按钮部件。hlayout = QHBoxLayout()  # 添加伸缩      hlayout.addStretch(0)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)) )    # 添加伸缩      #hlayout.addStretch(1)self.setLayout(hlayout)   if __name__ == "__main__":  app = QApplication(sys.argv) form = Winform()form.show()sys.exit(app.exec_())

运行效果如下所示:

同样道理,在最后一个控件之后添加伸缩控件,这样所有的控件就都会居左显示。

Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)相关推荐

  1. Python Qt GUI设计:QSpinBox计数器类(基础篇—15)

    QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值. 在默认情况下,QSpinBox的取值范围是0-9 ...

  2. Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)

    QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框. QComboBox类中的常用方法如下表所示: QComboBox类中的常用信号如下表所示: 来看看QComboBox按钮类的 ...

  3. Python Qt GUI设计:QLabel标签类(基础篇—11)

    QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件,纯文本.链接或富文本可以显示在标签上. QLabel类中的常用方法如下表所示: Q ...

  4. Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

    目录 1. 水平布局类(QHBoxLayout) 2.垂直布局类(QVBoxLayout) 3.网格布局类(QGridLayout) 3.1.单一的网络布局 3.2.跨越行.列的网络布局 4.表单布局 ...

  5. Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5)

    目录 1.布局管理器进行布局 2.容器控件进行布局 3.geometry属性:控件绝对布局 4.sizePolicy属性:微调优化控件布局 Qt Designer提供4种窗口布局方式,分别如下: Ve ...

  6. Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

    目录 1.信号与槽的概念 2.信号与槽的基础函数 2.1.创建信号函数 2.2.连接信号函数 2.3.断开信号函数 2.4.发射信号函数 3.信号和槽的使用方法 3.1.内置信号与槽的使用 3.2.自 ...

  7. Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)

    目录 1.界面组件 1.1.布局组件(Layouts) 1.2.分隔组件(Spacers) 1.3.按钮组件(Buttons) 1.4.表项视图(Item Views) 1.5.表项组件(Item W ...

  8. Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)

    目录 1.创建项目 2.将.ui文件生成.py文件 2.1.Eric 6编译 2.2.Python命令行编译 2.3.脚本编译 3.界面.逻辑分离思想 在开始本文之前提醒各位朋友,Python记得安装 ...

  9. Python Qt GUI设计:QPushButton、QRadioButton和QCheckBox按钮类(基础篇—12)

    目录 1.QPushButton按钮类 2.QRadioButton按钮类 3.QCheckBox按钮类 在GUI设计中,按钮都是最重要的和常用的触发动作请求的方式,用来与用户进行交互操作.在PyQt ...

最新文章

  1. 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
  2. Spring的常见问题及答案
  3. Git fetch pull 详解
  4. 西安openGauss Meetup成功举办,共建最佳学术创新平台
  5. 软件工程第八次作业——例行报告
  6. acegis连接使用方法_铝型材配件间隔连接块的分类与使用方法
  7. 题目1008:最短路径问题(SPFA算法)
  8. 【科研论文】找到中文论文的英文引用格式
  9. 两个栈实现一个队列(图解),一看就懂
  10. 2d unity 多物体 射线_Unity3D 之射线检测
  11. Mybatis数据框架整合
  12. LRC歌词原理和实现高仿Android网易云音乐
  13. 学习3d游戏建模的灵魂拷问20问,轻松征服游戏公司主美!
  14. i3处理器_电脑i3、i5、i7处理器到底区别在哪儿?
  15. GreeNC:植物lncRNA数据库
  16. [CANFD] 高波特率下收发器延时的处理机制-Transceiver delay compensation
  17. 足迹推荐位,淘宝足迹推荐位,旺旺打标足迹显示问题,详情页足迹推荐,淘宝详情页的下拉出现足迹,v兔电商
  18. 人机混合智能的哲学思考
  19. hp服务器重装系统按什么键,惠普重装系统按什么键|惠普u盘装系统按哪个键
  20. C++ 实现 摄氏度 华氏度 温度转换(尽量少的代码)

热门文章

  1. HarmonyOS 实现跑马灯效果
  2. python 将一个整数变成2个字节的字符
  3. 使用docker Hub
  4. 金蝶K/3 BOS产品培训教案
  5. 详解BLE 空中包格式—兼BLE Link layer协议解析
  6. php可以定义数组的常量吗
  7. 2022-2028年中国服装电商行业发展战略规划及投资方向研究报告
  8. MySQL 学习笔记(18)— 索引的分类、创建、查看、删除等
  9. Pyhton 内置 itertools 模块chain、accumulate、compress、drop、take等函数使用
  10. 关于上传文件的跨域问题