Python Qt GUI设计:如何调整组件布局比例?(拓展篇—1)
目录
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)相关推荐
- Python Qt GUI设计:QSpinBox计数器类(基础篇—15)
QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值. 在默认情况下,QSpinBox的取值范围是0-9 ...
- Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)
QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框. QComboBox类中的常用方法如下表所示: QComboBox类中的常用信号如下表所示: 来看看QComboBox按钮类的 ...
- Python Qt GUI设计:QLabel标签类(基础篇—11)
QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件,纯文本.链接或富文本可以显示在标签上. QLabel类中的常用方法如下表所示: Q ...
- Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)
目录 1. 水平布局类(QHBoxLayout) 2.垂直布局类(QVBoxLayout) 3.网格布局类(QGridLayout) 3.1.单一的网络布局 3.2.跨越行.列的网络布局 4.表单布局 ...
- Python Qt GUI设计:窗口布局管理方法【基础】(基础篇—5)
目录 1.布局管理器进行布局 2.容器控件进行布局 3.geometry属性:控件绝对布局 4.sizePolicy属性:微调优化控件布局 Qt Designer提供4种窗口布局方式,分别如下: Ve ...
- Python Qt GUI设计:信号与槽的使用方法(基础篇—7)
目录 1.信号与槽的概念 2.信号与槽的基础函数 2.1.创建信号函数 2.2.连接信号函数 2.3.断开信号函数 2.4.发射信号函数 3.信号和槽的使用方法 3.1.内置信号与槽的使用 3.2.自 ...
- Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—4)
目录 1.界面组件 1.1.布局组件(Layouts) 1.2.分隔组件(Spacers) 1.3.按钮组件(Buttons) 1.4.表项视图(Item Views) 1.5.表项组件(Item W ...
- Python Qt GUI设计:将UI文件转换为Python文件的三种妙招(基础篇—2)
目录 1.创建项目 2.将.ui文件生成.py文件 2.1.Eric 6编译 2.2.Python命令行编译 2.3.脚本编译 3.界面.逻辑分离思想 在开始本文之前提醒各位朋友,Python记得安装 ...
- Python Qt GUI设计:QPushButton、QRadioButton和QCheckBox按钮类(基础篇—12)
目录 1.QPushButton按钮类 2.QRadioButton按钮类 3.QCheckBox按钮类 在GUI设计中,按钮都是最重要的和常用的触发动作请求的方式,用来与用户进行交互操作.在PyQt ...
最新文章
- 用-force –opengl 指令_OpenGL-使用Tessellation技术绘制Cubic Bézier Patches
- Spring的常见问题及答案
- Git fetch pull 详解
- 西安openGauss Meetup成功举办,共建最佳学术创新平台
- 软件工程第八次作业——例行报告
- acegis连接使用方法_铝型材配件间隔连接块的分类与使用方法
- 题目1008:最短路径问题(SPFA算法)
- 【科研论文】找到中文论文的英文引用格式
- 两个栈实现一个队列(图解),一看就懂
- 2d unity 多物体 射线_Unity3D 之射线检测
- Mybatis数据框架整合
- LRC歌词原理和实现高仿Android网易云音乐
- 学习3d游戏建模的灵魂拷问20问,轻松征服游戏公司主美!
- i3处理器_电脑i3、i5、i7处理器到底区别在哪儿?
- GreeNC:植物lncRNA数据库
- [CANFD] 高波特率下收发器延时的处理机制-Transceiver delay compensation
- 足迹推荐位,淘宝足迹推荐位,旺旺打标足迹显示问题,详情页足迹推荐,淘宝详情页的下拉出现足迹,v兔电商
- 人机混合智能的哲学思考
- hp服务器重装系统按什么键,惠普重装系统按什么键|惠普u盘装系统按哪个键
- C++ 实现 摄氏度 华氏度 温度转换(尽量少的代码)