第15.13节 PyQt(Python+Qt)入门学习:Qt Designer的Spacers部件详解

QT入门Spacers之Horizontal Spacer、Vertical Spacer qt控件 阅读详情

一、 引言

在Designer的部件栏中,有两种类型的Spacers部件,下图中上面布局中为一个水平间隔部件(按钮1和按钮2之间的部件),下面布局中为一个垂直间隔部件(按钮3和4之间),如图:
在这里插入图片描述
这两种部件用于在布局中不同部件间增加间隔,以辅助解决一些布局无法完美解决的部件布局排列美观问题。

二、 Spacers部件的相关属性

2.1、概述

Spacers部件非常简单,除了名字之外只有三个属性,分别是orientation、sizeType和sizeHint。Spacers部件对应的类实际上是QSpacerItem类,但从QSpacerItem类来看,除了sizeHint属性能与Designer中的部件属性相同之外,并没有orientation、sizeType这两个属性。这是由于Spacers部件本身的特殊性导致的。

2.2、orientation和sizeType属性

从引言中的图可以看出,两种Spacers部件在Designer中的部件图形表现为两种线型,水平间隔部件(Horizontal Spacer)体现为一根比较粗的横线,垂直间隔部件(Vertical Spacer)体现为一根比较粗的竖线。
对这两种部件来说,横线对应部件在拉伸时的高度大小策略没有意义,竖线对应部件在拉伸时的宽度大小策略没有意义,因此Spacer部件的sizeType实际上就是sizePolicy,对应取值及含义也与sizePolicy一样:
在这里插入图片描述
只是sizePolicy一般是两维的(横向和纵向),而这里只有一维,具体是哪一维需要根据是横线部件还是竖线部件来确认,而方向是来确认使用哪一维:如果是水平横向,则sizeType表示宽度的拉伸策略,如果是垂直纵向,则sizeType表示高度的拉伸策略,另一维的拉伸策略都固定为QSizePolicy.Minimum。因此方向是仅用于确认sizeType的值是对应宽度还是高度的大小策略,本身并没有对应的单独类属性。

2.3、sizeHint属性

sizeHint为Qt建议部件的大小,也称为首选大小。在《PyQt(Python+Qt)学习随笔:Qt Designer中部件的三个属性sizeHint缺省尺寸、minimumSizeHint建议最小尺寸和minimumSize最小尺寸》中我们说sizeHint为布局管理器中部件的缺省大小,该值是Qt中对每个部件大小的建议值,也是缺省值,不能修改,但在Spacer部件中是可以修改的,这是因为Spacer部件不是从QWidget类派生的部件,这里的sizeHint也并不简单是缺省大小。

Spacer部件的实际大小受部件的大小策略、sizeHint以及布局中其他部件的影响,具体参考上表sizePolicy的说明。

三、 Spacers部件的类型和方向的关系

上面已经介绍了Spacer部件的方向确认的是部件拉伸扩展策略作用的对象是垂直高度还是水平方向。而Spacers部件的两种类型其实就是缺省确认了两个不同的方向,水平间隔部件(Horizontal Spacer)的方向缺省就是水平方向,垂直间隔部件(Vertical Spacer)部件的方向缺省就是垂直方向。

可以通过属性编辑界面的orientation来改变缺省方向,即将水平间隔部件方向改为垂直方向,垂直间隔部件部件的方向改为水平方向。方向改变后的水平间隔部件实际上就变成了垂直间隔部件,反之亦然,因此这两个部件本质上就是一种。

我们通过生成的代码来对照看一下。
引言中的截图使用的间隔部件上面布局的是水平间隔部件,sizeHint被设置为(40,20),方向为水平方向,下面布局的是垂直间隔部件,sizeHint被设置为(20,40),方向为垂直方向,二者的sizeType被设置为Expanding。生成的创建Spacer部件的对应代码分别如下:

spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)

当两个间隔部件的方向改变之后,窗口布局变成如下:
在这里插入图片描述
生成的代码如下:

spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)

对比看一下代码,方向改变之后,就是部件创建时候的代码发生了两处变化:
1、 sizeHint的值的宽度和高度交换了一下值;
2、 sizePolicy的取值也发生了交换。
变换后, sizeHint的宽度变高度、高度变宽度,按默认值应该是方向指定维度变大、非指定维度变小,方向所指定的维度(即高度或宽度)的sizePolicy变更为sizeType指定值,另一个维度固定为Minimum策略。

四、 Spacers部件的使用

Spacers部件是在布局中的子部件周边或部件间增加间隔的空间,使得界面布局更合理。
1、 水平方向间隔部件一般是当布局内某个可以水平拉伸的部件希望不被拉伸时使用。
两个按钮在水平布局内水平排列,如图:
在这里插入图片描述
如果不设置间隔部件拉伸该窗口:
在这里插入图片描述
这个效果比较难看。如果在两个按钮前后都放置一个水平间隔部件,则拉伸后的效果如图:
在这里插入图片描述
此时再缩小如图:
在这里插入图片描述
可以明显看到加了间隔部件的效果要好看多了。
2、 垂直方向间隔部件一般是当布局内某个可以垂直拉伸的部件希望不被拉伸时使用。
两个按钮垂直布局内排列如图:
在这里插入图片描述
拉伸后效果如图:
在这里插入图片描述
在垂直方向加2个垂直间隔部件后拉伸效果如图:
在这里插入图片描述
如果在窗体布局(水平布局)上再增加水平间隔部件可以得到如下效果:
在这里插入图片描述
如果再调整右下角的垂直间隔部件的sizeType为Maximum,则可以得到如下效果:
在这里插入图片描述

五、 代码实现Spacers部件的增加

如果要在一个布局内增加间隔部件,只要在生成部件的代码中适当位置增加部件生成的代码就可以,有2种方法实现。

5.1、使用spacerItem方法

spaceItem = QtWidgets.QSpacerItem(int sizeHint.width, int sizeHint.height, 
QSizePolicy.Policy widthPolicy, QSizePolicy.Policy heightPolicy)
布局.addItem(spaceItem)

5.2、使用addStretch方法

QBoxLayout.addStretch(int stretch = 0)

直接在要插入间隔部件的代码位置使用缺省值调用该方法就可以。

本节详细介绍了Qt Designer的间隔部件的属性和使用方法,并将可视部件与类QSpacerItem的对应关系进行了分析,最后给出了通过代码实现的两种方案,并给出了使用的案例。从给出的案例可以看出,间隔部件可以很好地提升布局的美观。

老猿Python,跟老猿学Python!

博文目录

博客地址

qt 布局管理和空间管理 Layouts & Spacers Grid Layout:网格(栅格)布局:此控件划分为行和列组成,能够将控件放入一个网状栅格当中,每一个控件占一格或多行多列。 阅读详情

相关推荐

快速掌握Pyqt5的2种弹簧

在PyQt5中,“弹簧”(Spacer)指的是在布局中使用的空间填充物,主要用于在控件之间添加额外的空白区域或者推动控件到窗口的一边。在PyQt5中,这种弹簧效果通常是通过来实现的,这些弹簧可以在水平或垂直布局中使用。

weixin_49520696的博客 3694

Qt6教程之二(2) Spacers

Qt控件之 Spacers的使用!

让每一个想学习编程的人,都能学会,都能看懂,看了都有收获! 6666

Qt Designer中的Spacer控件及其属性

在这个示例中,我们通过QVBoxLayout布局管理器添加了两个Spacer控件,第一个设置为可扩展大小,第二个设置为最小可扩展大小。我们可以根据具体的需求选择相应的sizeType类型,来指定Spacer控件的大小约束关系。在Qt Designer中,Spacer控件是一种非常常用的控件,它可以帮助我们在界面布局中实现空白区域的占位。通过上述操作,我们可以很方便地在Qt Designer中使用Spacer控件,并通过设置sizeType属性来控制控件的大小约束关系。

学习使你进步。 2144

Qt语言从入门到精通

QT语言学习教程,本课程主要目的:把知识起点降到全网最低以适合没有Qt编程或刚接触过Qt的人群出发考虑。基础部分:介绍Qt编程环境安装,编程环境使用技巧,及以Qt开发起点界面开发必不可少的UI控件使用编程为引导做到让学习者由生变熟的转化过程。进阶部分:主要以一个例子开始讲解实际开发过程所需技能要达到的成度即数据的存储展示、界面的自由灵活定制、线程高效使用。课程的总体主要实现目标是让学者体会和熟悉上手Qt到走进实际开发的两个过程。该视频课程内容涉及QT IDE的使用技巧、标签Label、按钮PushButton、输入输出LineEdit、下拉选择ComboBox、函数Function、槽函数Slots、信号Signals、链接函数Connection、Qt类封装、QtObject类分析、控件布局QLayout、布局调整期Spacer、线程与消息队列QueuedConnection、线程与事件循环QEventLoop、线程同步之互斥锁Qmutex、Qt文件监控QFileSystemWatcher、数据库、网络、文件操作等必不可少的内容。

PyQt初学者必看:Qt Designer中Spacers部件的使用详解

在PyQt中,Qt Designer是一个非常方便的工具,可以帮助我们设计出漂亮、实用的界面。其中,Spacers部件是一个很重要的部件,可以帮助我们调整控件之间的间距和布局方式。横向Spacer和纵向Spacer是用来控制控件之间的间距和位置的,它们在水平和垂直方向上都可以拉伸。Spacers是Qt Designer中非常有用的控件,可以帮助我们方便地调整布局和控件之间的间距。我们在每个控件之间分别添加了一个横向Spacer,它们的宽度都是40,高度是20,并且可以在水平方向上扩展。

. 1323

使用Qt Designer中spacer组件设置方向属性的Python方法

上述代码中,我们定义了一个水平布局,并在其中添加了一些控件。在此处,我们设置了spacer组件的宽度为40、高度为20,并指定了其方向属性为Expanding(扩展)。在Qt Designer中,spacer组件是一个用于布局管理的常见部件,它可用于调整窗口中控件之间的间距和位置。spacer组件与其他组件相比具有独特的优势,可以根据需要自定义其方向属性,从而在窗口布局中起到更加重要的作用。在上述代码中,我们使用setOrientation()方法将spacer组件的方向属性设置为垂直方向。

带你成为别人眼中的大佬! 542

Qt开发入门:从零到跨平台GUI低手

Qt开发入门:从零到跨平台GUI低手

Yusei_0523的博客 553

Qt Designer中的间隔部件(Spacers) - Python

在上述程序中,我们创建了一个QHBoxLayout,并向其中添加了两个QPushButton和两个QLabel,以及一个QSpacerItem。Spacers是一种特殊的QWidget,它没有显示的内容,但可以用于占据布局中的空白区域。Spacers通常用于布局中的两端,或者用于控制布局中小部件之间的间距,使整个布局更加美观。Qt Designer中提供了专门的间隔部件,称为Spacers。运行程序,将看到一个简单的GUI窗口,其中两个按钮之间有一个40像素的空白区域,整个布局看起来更加美观。

HackDyno的博客 748

【Qt】Spacer

在使用布局管理的时候,如果需要在控件之间添加一段空白,就可以使用QSpacerItem来表示。

dab112的博客 2636

Qt控件空间间隔组(Spacers)[Horizontal Spacer:水平间隔|Vertical Spacer:垂直间隔]

QSpacerItem 继承 QLayoutItem。QSpacerItem 类在布局中提供空白(空间间隔)。所以QSpacerItem 是在布局中使用的。它包含 Horizontal Spacer(水平间隔)与 Vertical Spacer(垂直间隔)

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 2784

[模型部署]-[LLM]昇腾部署Qwen3-Coder-30B-A3B-Instruct

摘要:本文介绍了在Ascend NPU上部署Qwen3-Coder-30B-A3B-Instruct大模型的实践过程。通过vLLM-Ascend框架,详细说明了环境准备(CANN 8.1、PyTorch-NPU 2.5.1等)、模型下载、容器启动及服务部署步骤,包括vLLM服务的启动参数配置和接口测试方法。测试结果显示在当前2卡910B3配置下性能表现仅为8token/s(1并发),并指出流式调用时存在无法输出usage信息的问题。该方案为Ascend平台私有化部署大模型推理服务提供了参考实现。

1671

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 空白项Spacer

QSpacerItem是一个用于布局的空间项。它可以在布局中插入一个可调整大小的空白区域,用于调整窗口或控件之间的间距。QSpacerItem有两种类型:水平的和垂直的。水平的QSpacerItem用于水平布局中,在水平方向上调整窗口或控件之间的间距。垂直的QSpacerItem用于垂直布局中,在垂直方向上调整窗口或控件之间的间距。

小黄鸭的博客 2936

CAN 比特率和采样点计算

架构根据输入频率和比特率自动计算。

ldinvicible的专栏 787

Qt中vertical spacer和horizontal spacer弹簧使用

前言 在使用qtCreator中使用各种控件,默认是没有布局。在发布软件以后,如果软件在不同分辨率的屏幕显示界面时,是无法自适应屏幕分辨率的。就造成了显示不全,或者显示太小等问题, 所以我们要对界面布局。 步骤 第一步:在QtCreator设计器中加入控件,左边,右边,上边,下边,中间,和2个水平弹簧,2个垂直弹簧。 设置背景颜色 border-width: 1px;border-style: solid;border-color: rgb(8, 85, ...

顺其自然~专栏 7134

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析

本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。

weixin_26965807的博客 236

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 821

QtDesigner中的Spacers弹簧/间隔器

关于Qtdesigner中Spacer的介绍

xiongmaowangd的博客 1430

oracle rac 成本及架构,Oracle Extended RAC 架构实战

Extended-RAC,是RAC技术的一种扩展增强。Extended-RAC是通过专用光纤(或租用裸光纤)加DWDM(波分设备)设备将两个不同楼栋/同城甚至异地机房进行相连,将数据库主机、存储分别放置于不同机房,利用存储复制/ASM Mirror等技术进行数据复制进行搭建的一种远距离集群架构。Extended RAC需要将不同楼栋/同城甚至异地机房通过专用光纤(或租用裸光纤)加DWDM(光纤复用...

weixin_33812391的博客 2453

学习记录-Qt布局中的Spacer使用

在自定义控件后,使用自定义控件进行布局时,采用网格布局,当窗口大小合适,动态创建的空控件数量也合适时,那么控件之间的空白处比较小,能布满窗口,效果比较好看,但是当控件较小或者控件较少时,就都居中显示了。不想要这种效果,想要一种自动靠左对齐或者靠右对齐的方式来显示,该怎么实现呢,Qt布局器中的Spacer就可以解决这个问题。

limilie的专栏 5万+

EtherCAT-7 从站代码移植-SPI

STM32F103 + AX58100,从站代码移植。

tianya_xuan的博客 3570

自私兽群优化器(SHO)详解:从生物本能到智能优化

自私兽群优化器(SHO)是一种受动物群体自私行为启发的智能优化算法。该算法模拟动物在捕食威胁下的两种行为:聚集行为(全局搜索)和自私行为(局部搜索),将优化问题的解空间映射为生存环境,候选解视为猎物个体。SHO通过安全性评估将猎物分为安全、危险和高危三类,分别采用不同的位置更新策略,并引入捕食者角色增加选择压力。相比传统优化算法,SHO具有无需梯度信息、自适应平衡探索与开发、参数简单等优势,特别适合高维复杂和多模态优化问题。算法通过马尔可夫链理论保证收敛性,已在工程设计和数据挖掘等领域展现出良好性能。

qq_42212808的博客 196

Qt界面设计时使各控件依据窗口缩放进行自适应填充的方法——使用布局、Spacer等控件

关于 Qt 布局管理,有专门的帮助文档页面Layout Management。本章的主要内容就是介绍布局管理的知识,Qt 设计师里面不仅有布局器的控件可以拖动使用,还可以在窗体里面选择控件,然后点击设计师上面的工具按钮自动添加布局器。本节首先大致介绍一下 Qt 设计师里面关于布局器的操作界面。Qt 的窗口主要内容包括: 布局的样式 , 基于UI界面设置布局 , 基于API设置布局。Qt 窗口布局是指将多个子窗口按照某种排列方式将其全部展示到对应的父窗口中的一种处理方式。

宁静致远的博客 1万+

杰理AC696N系列芯片外部中断使用教程

本教程详细介绍了杰理AC696N芯片的GPIO引脚中断唤醒功能实现方法。主要内容包括: 功能特点: 支持任意GPIO引脚配置为中断源 可灵活选择上升沿或下降沿触发 提供自定义中断回调函数接口 核心实现: 通过port_wkup_interrupt_init()函数配置GPIO属性 使用request_irq()注册中断服务程序 提供中断使能/关闭接口 注意事项: 此功能在低功耗模式下无效 需注意引脚冲突和中断优先级设置 建议在回调函数中实现简洁的逻辑 应用场景: 按键检测 外部信号监测 事件触发等 本方案提

qq_42014563的博客 944

Qt 设计师-Qt Designer基础控件介绍

3、Line Edit:单行文本框,输入单行字符串。5、CommandLinkButton: 命令链接按钮,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项Dialog。setEnabled() 设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号。setChecked() 设置复选框的状态,设置为True表示选中,False表示取消选中的复选框。- QLineEdit.NoEcho:不显示任何输入的字符,常用于密码类型的输入,且长度保密。

weixin_42422318的博客 3615

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

PyQt布局细节:界面空间分配和组件间距的关键——弹簧(Spacer)

【代码】PyQt布局细节:界面空间分配和组件间距的关键——弹簧(Spacer)

Mr_K_night的博客 1813

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的sizeHint属性
下一篇: PyQt(Python+Qt)实战:使用QCamera、QtMultimedia等实现摄像头拍照
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值