首页/新闻资讯/正文详情

Qt — 布局管理器

发布时间:2026/9/26 11:10:59 来源:云帆数科 栏目:资讯中心
Qt — 布局管理器
目录1. 垂直布局2. 水平布局3. 网格布局4. 表单布局行为N列固定为25. Spacer之前使⽤ Qt 在界⾯上创建的控件, 都是通过 绝对定位 (手动) 的⽅式来设定的.也就是每个控件所在的位置, 都需要计算坐标, 最终通过 setGeometry 或者 move ⽅式摆放过去.这种设定⽅式其实并不⽅便. 尤其是界⾯如果内容⽐较多, 不好计算. ⽽且⼀个窗⼝⼤⼩往往是可以调整的, 按照绝对定位的⽅式, 也⽆法⾃适应窗⼝⼤⼩.因此 Qt 引⼊ 布局管理器 (Layout) 机制, 来解决上述问题.当然, 布局管理器并非 Qt 独有. 其他的 GUI 开发框架, 像 Android, 前端等也有类似的机制.1. 垂直布局使⽤ QVBoxLayout 表⽰垂直的布局管理器. V 是 vertical 的缩写.核心属性属性说明layoutLeftMargin左侧边距layoutRightMargin右侧边距layoutTopMargin上方边距layoutBottomMargin下方边距layoutSpacing相邻元素之间的间距Layout 只是⽤于界⾯布局, 并没有提供信号.上述三个按钮的父元素就是 layoutlayout 的父元素就是 this都是处在 Qt 的对象树之上的释放无需过多的担心。运行按钮的大小换和位置都是根据窗口的变化而自动变化。每个 widget 中只能设置一个布局管理器。这个操作是先拖的是 layout 过去然后再往 layout 中拖其他控件也可以先拖其它控件后给这些控件套上 layout运行此时窗口大小发生变化里面的大小是不会随之发生变化的。如果在代码中创建 layout其实是只创建了一个 layout。但是如果在 QtDesigner 中创建的 layout先创建了一个 Widget然后再在这个新的 Widget 中添加一个 layout。可以先拖其它控件后给这些控件套上 layout2. 水平布局使⽤ QHBoxLayout 表⽰垂直的布局管理器. H 是 horizontal 的缩写.核心属性 (和 QVBoxLayout 属性是⼀致的)属性说明layoutLeftMargin左侧边距layoutRightMargin右侧边距layoutTopMargin上方边距layoutBottomMargin下方边距layoutSpacing相邻元素之间的间距运行布局管理器之间也是也可进行嵌套的运行3. 网格布局Qt 中还提供了 QGridLayout ⽤来实现⽹格布局的效果. 可以达到 M * N 的这种⽹格的效果.整体和 QVBoxLayout 以及 QHBoxLayout 相似. 但是设置 spacing 的时候是按照垂直⽔平两个⽅向来设置的.核心属性整体和 QVBoxLayout 以及 QHBoxLayout 相似. 但是设置 spacing 的时候是按照垂直⽔平两个⽅向来设置的.属性说明layoutLeftMargin左侧边距layoutRightMargin右侧边距layoutTopMargin上方边距layoutBottomMargin下方边距layoutHorizontalSpacing相邻元素之间⽔平⽅向的间距layoutVerticalSpacing相邻元素之间垂直⽅向的间距layoutRowStretch⾏⽅向的拉伸系数layoutColumnStretch列⽅向的拉伸系数运行运行运行运行拉伸系数以上创建的布局管理器这里的空间尺寸都是均等的。当需要创建出尺寸不同的控件的时候就可以通过拉伸系数来设置拉伸系数就相当于设置空间之间尺寸的 ”比例“运行如果将 拉升系数设为0意思就是不参与拉伸此时按钮的宽度是固定值。运行垂直方向的拉伸运行上述代码直接设置拉伸系数发现无效的这里之所以没有拉伸是因为 SizePolicy 起到的影响。 SizePolicy 这个是 Qwidget 的属性。使⽤ setSizePolicy 设置按钮的尺⼨策略. 可选的值如下:QSizePolicy::Ignored : 忽略控件的尺⼨不对布局产⽣影响。QSizePolicy::Minimum : 控件的最⼩尺⼨为固定值布局时不会超过该值。QSizePolicy::Maximum : 控件的最⼤尺⼨为固定值布局时不会⼩于该值。QSizePolicy::Preferred : 控件的理想尺⼨为固定值布局时会尽量接近该值。QSizePolicy::Expanding : 控件的尺⼨可以根据空间调整尽可能占据更多空间。QSizePolicy::Shrinking : 控件的尺⼨可以根据空间调整尽可能缩⼩以适应空间。由于按钮垂直方向默认没有拉伸开水平方向默认是拉伸的因此垂直方向不会受到拉伸系数的影响了要想让垂直方向的拉伸系数生效就需要让按钮先能够拉伸展开。运行4. 表单布局行为N列固定为2除了上述的布局管理器之外, Qt 还提供了 QFormLayout , 属于是 QGridLayout 的特殊情况, 专⻔⽤于实现两列表单的布局.这种表单布局多⽤于让用户填写信息的场景. 左侧列为提示, 右侧列为输⼊框.运行5. SpacerSpacer不是布局管理器使⽤布局管理器的时候, 可能需要在控件之间, 添加⼀段空⽩. 就可以使⽤ QSpacerItem 来表⽰.核心属性属性说明width宽度height⾼度hData⽔平⽅向的 sizePolicyQSizePolicy::Ignored : 忽略控件的尺⼨不对布局产⽣影响。QSizePolicy::Minimum : 控件的最⼩尺⼨为固定值布局时不会超过该值。QSizePolicy::Maximum : 控件的最⼤尺⼨为固定值布局时不会⼩于该值。QSizePolicy::Preferred : 控件的理想尺⼨为固定值布局时会尽量接近该值。QSizePolicy::Expanding : 控件的尺⼨可以根据空间调整尽可能占据更多空间。QSizePolicy::Shrinking : 控件的尺⼨可以根据空间调整尽可能缩⼩以适应空间。vData垂直⽅向的 sizePolicy选项同上运行图形化操作

相关推荐

第1章:开发环境搭建,安装乌班图系统
第1章:开发环境搭建,安装乌班图系统

专栏导航 上一篇:第1章:开发环境搭建,安装 VMware 虚拟机 回到目录 下一篇:第1章:了解乌班图环境,命令行中的提示文字 本节前言 对于本节所讲解的知识,有可能,你会需要时不时地参… · 2026/9/26 11:10:59

【STM32开源项目】智能家用垃圾桶
【STM32开源项目】智能家用垃圾桶

目录 一、项目概述 二、实现功能 1、功能详解: 2、项目清单: 3、演示视频: 三、硬件介绍 PCB硬件设计: 四、程序设计 五、项目成品效果图 六、项目总结 七、包含资料 一、项目概述 本项目基于STM32F103C8T6单片机&… · 2026/9/26 11:10:53

Linux网络(十七):TCP序号与超时重传详解:从发送缓冲区下标到丢包检测、重复报文与重传机制
Linux网络(十七):TCP序号与超时重传详解:从发送缓冲区下标到丢包检测、重复报文与重传机制

◆ 博主名称: 小此方-CSDN博客 大家好,欢迎来到小此方的博客。 ⭐️网络系列个人专栏: 【主题曲】计算机网络 ⭐️此方的GitHub: github_此方 ⭐️我们思考 (Rethink) 我们重建 (Rebuild) 我们记录 (Record) 文章目录概要&… · 2026/9/26 11:10:52

Spring Boot + Vue 农产品电商平台实战:从商品建模到Docker部署
Spring Boot + Vue 农产品电商平台实战:从商品建模到Docker部署

去年年底我接了一个农产品电商平台的项目,需求方是一家做精品果蔬的农业合作社,要求做一套能跑“前台购物后台管理订单配送”的完整系统。技术栈他们倒没指定,只提了要前后端分离、能维护、能部署。我选了Spring Boot Vue的组合,… · 2026/9/26 11:42:19

驾驭工程 Harness Engineering 实战:用 TaoToken 统一 Key 搭建 AI Agent 软件工程新范式骨架
驾驭工程 Harness Engineering 实战:用 TaoToken 统一 Key 搭建 AI Agent 软件工程新范式骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:42:19

C#实战:用WinForms+SQLite+Dapper从零开发图书管理系统
C#实战:用WinForms+SQLite+Dapper从零开发图书管理系统

1. 从"学完C#不知道做什么"到第一行业务代码 如果你正在学C#,大概率会经历这样一个尴尬期:跟着教程敲过控制台计算器、写过猜数字游戏、弄过几个窗体界面,语法看着都眼熟,可一旦让你独立做一个"像样点的东西"… · 2026/9/26 11:42:19

IoT能源管理系统(IEMS)实战:从架构设计到控制策略落地
IoT能源管理系统(IEMS)实战:从架构设计到控制策略落地

1. 从一块电表说起:IEMS 到底在解决什么问题第一次接触 IEMS 这个概念,是在一个做园区能耗改造的朋友那里。他当时手里攥着一叠电费单,指着上面一条几乎贴着零轴的曲线跟我说:“你看,凌晨两点到五点,这栋楼… · 2026/9/26 11:42:19

双非本科AI专业求职复盘:从简历石沉大海到拿下offer,我踩过的坑和总结的TaoToken式配置思路
双非本科AI专业求职复盘:从简历石沉大海到拿下offer,我踩过的坑和总结的TaoToken式配置思路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:42:19

openGauss cursor fetchone 踩坑实录:TaoToken 统一 Key 下 settings.json 配置与验证
openGauss cursor fetchone 踩坑实录:TaoToken 统一 Key 下 settings.json 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:42:12

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码