【Qt】控件——布局管理器、常见的布局管理器、布局管理器的使用、垂直布局、水平布局、网格布局、表单布局、Spacer

文章目录

  • Qt
    • 布局管理器
      • 垂直布局
      • 水平布局
      • 网格布局
      • 表单布局
      • Spacer

Qt

在这里插入图片描述
  

布局管理器

  之前在使用 Qt 创建界面上的控件时,大多是通过 “绝对定位” 的方式来设定的。即每个控件所在的位置都需要计算坐标,最终通过 setGeometry 或者 move 方式进行摆放。

  然而,这种设定方式实际上并不方便。尤其是当界面内容较多时,不好计算控件的位置。而且一个窗口的大小往往是可以调整的,按照绝对定位的方式,无法自适应窗口大小。

  因此,Qt 引入了 “布局管理器”(Layout)机制,以解决上述问题。

  

垂直布局

  使用 QVBoxLayout 表示垂直的布局管理器。其中,V 是 vertical 的缩写。

  

属性说明
layoutLeftMargin左侧边距
layoutRightMargin右侧边距
layoutTopMargin上方边距
layoutBottomMargin下方边距
layoutSpacing相邻元素之间的间距

  

  1. QVBoxLayout 是垂直布局,addWidget() 用于向布局器中添加元素。
    在这里插入图片描述

  

水平布局

  使用 QHBoxLayout 表示水平的布局管理器。其中,H 是 horizontal 的缩写。

  核心属性与 QVBoxLayout 属性一致,具体如下:

  

属性说明
layoutLeftMargin左侧边距
layoutRightMargin右侧边距
layoutTopMargin上方边距
layoutBottomMargin下方边距
layoutSpacing相邻元素之间的间距

  

  1. QHBoxLayout 是水平布局管理器,addWidget用于添加元素。

在这里插入图片描述
  

  1. QVBoxLayout 和 QHBoxLayout 可以配合使用。
    在这里插入图片描述

  

网格布局

  Qt 中提供了 QGridLayout 用于实现网格布局的效果,能够达到 M * N 的网格布局形式。

  核心属性与 QVBoxLayout 和 QHBoxLayout 有相似之处,但在设置间距时是按照垂直和水平两个方向进行设置的。

  

属性说明
layoutLeftMargin左侧边距
layoutRightMargin右侧边距
layoutTopMargin上方边距
layoutBottomMargin下方边距
layoutHorizontalSpacing相邻元素之间水平方向的间距
layoutVerticalSpacing相邻元素之间垂直方向的间距
layoutRowStretch行方向的拉伸系数
layoutColumnStretch列方向的拉伸系数

  

  1. 网格布局管理器,类似网格可以调整元素的位置。

在这里插入图片描述
  

  1. 使用QSizePolicy 提供的一些宏可以修改按钮的样式。

在这里插入图片描述

  

表单布局

  除了上述的布局管理器之外,Qt 还提供了 QFormLayout。它属于 QGridLayout 的特殊情况,专门用于实现两列表单的布局。

  这种表单布局多用于让用户填写信息的场景。其中,左侧列为提示信息,右侧列为输入框,方便用户直观地了解每个输入项的含义并进行相应的输入操作。

  

  1. QGridLayout 为表单布局。
    在这里插入图片描述

  

Spacer

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

  

属性说明
width宽度
height高度
hData水平方向的 sizePolicy
QSizePolicy::Ignored忽略控件的尺寸,不对布局产生影响。
QSizePolicy::Minimum控件的最小尺寸为固定值,布局时不会超过该值。
QSizePolicy::Maximum控件的最大尺寸为固定值,布局时不会小于该值。
QSizePolicy::Preferred控件的理想尺寸为固定值,布局时会尽量接近该值。
QSizePolicy::Expanding控件的尺寸可以根据空间调整,尽可能占据更多空间。
QSizePolicy::Shrinking控件的尺寸可以根据空间调整,尽可能缩小以适应空间。
vData垂直方向的 sizePolicy,选项同水平方向。

  

  1. Spacer 向布局管理器中添加空白。

在这里插入图片描述

            

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/57316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置和排查 Lombok 在 IDEA 中使用的详细步骤

在日常开发中,Java 代码常常需要大量的样板代码,比如 getter、setter、toString 等方法。Lombok 是一个 Java 库,可以通过注解的方式,自动生成这些常见的代码,从而让代码更加简洁、清晰。比如,我们可以通过…

【牛客算法】某司面试算法题:设计LRU缓存结构

一、算法题描述 1.1 算法描述 设计LRU(最近最少使用)缓存结构,该结构在构造时确定大小,假设大小为 capacity ,操作次数是 n ,并有如下功能: Solution(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存get(key)&#x…

Java面试题集锦

1. 计算机网络 1、什么是计算机网络 2、什么是协议 3、什么是IP地址 4、什么是子网 5、什么是DNS 6、什么是NAT 7、什么是带宽和延迟 8、什么是VPN 9、路由器和交换机的区别 10、OSI与TCP/IP模型 11、TCP与UDP的区别 12、TCP三次握手四次挥手 13、HTTP和HTTPS的区…

快速在win11上利用hyper-v安装虚拟系统:遭遇Start PXE over ipv4

以前习惯使用VMware,但在win11上折腾了很久都遇到各种麻烦,索性就上微软自家的Hyper-V,。作为微软自家的产品,Hyper-V 与 Windows 11 操作系统紧密结合,具有良好的兼容性和稳定性。在安装和使用过程中,与系…

Python中的数据可视化:Matplotlib基础与高级技巧

Python中的数据可视化:Matplotlib基础与高级技巧 数据可视化是数据分析和数据科学中不可或缺的一部分。通过图表,我们可以更直观地观察数据的分布和趋势。Matplotlib作为Python最基础、也是最广泛使用的绘图库之一,不仅支持多种常用图表&…

沈阳乐晟睿浩科技有限公司抖音小店新篇章

在当今数字化时代,电商行业如雨后春笋般迅速崛起,其中抖音小店凭借其庞大的用户基础、精准的推荐算法和便捷的购物体验,成为了电商领域的新宠。在这场电商变革中,沈阳乐晟睿浩科技有限公司(以下简称“乐晟睿浩”&#…

正则表达式:强大的文本匹配与处理工具

正则表达式:强大的文本匹配与处理工具 正则表达式(Regular Expression,简称 regex)是一种用于定义搜索模式的字符串,用于匹配和处理文本。它广泛应用于数据清洗、文本分析、日志分析等场景。本文将介绍正则表达式的基…

1,国产FPGA(紫光同创)-IP核-PLL

本文默认在0,国产FPGA(紫光同创)-新建PDS工程基础上完成。 1,添加IP核 右击(1)空白处进行添加,点击New IP(2)进行新建IP核。 选择本次实验要配置的IP核-PLL(…

“智能二维码”实现光伏行业数字信息化管理

近日,为了提升管理效率,国电投建业光伏电站将二维码引入设备巡视和班组建设中。 首先,使用传统纸质巡视作业卡,巡视工作强度大,容易出现错误;此外,“三会一活动”和培训记录等班组建设过程材料大…

linux之awk

awk 是一个强大的文本处理工具,广泛用于Linux和Unix系统中。它可以用来处理和分析文本文件,尤其是那些以固定格式排列的数据。下面是一些简单的 awk 用法示例,帮助你更好地理解它的基本功能。 1. 打印文件的特定列 假设有一个CSV文件 data.…

电脑录屏不用愁!四款免费录屏软件深度体验分享

虽然我不是专业的,但是我有一颗想要变得专业的心。作为一名经常需要录制教学视频和游戏直播的博主,我深知一款好用的录屏软件对于工作效率的重要性。今天,我就来和大家分享一下我最近亲测的四款免费录屏软件,来看看哪一款更适合你…

shodan5,参数使用,批量查找Mongodb未授权登录,jenkins批量挖掘

查找美国安全局漏洞 nww.nsa.gov(美国安全局官方网站) net参数使用 搜索指定的ip网段 shodan search --limit 10 --fields ip_str,port net:208.88.84.0/24 (老美国家安全局的一个网段)可能直接访问不太行,可以使用host参数,得到域名再去…

部署MiniCPM-V

GitHub - OpenBMB/MiniCPM-V: MiniCPM-V 2.6: A GPT-4V Level MLLM for Single Image, Multi Image and Video on Your Phone 安装和执行 "Local WebUI Demo" 的步骤如下: 克隆仓库并导航到源文件夹: git clone https://github.com/OpenBMB/M…

Vue 权限管理

vue 中,比较常见的需要进行权限管控的权限控制实现思路有四条:、 菜单的控制 在登录请求中,会得到权限数据,当然,这个需要后端返回数据的支持,前端根据权限数据,展示对应的菜单,单…

MongoDB 8.0.3版本安装教程

MongoDB 8.0.3版本安装教程 一、下载安装 1.进入官网 2.选择社区版 3.点击下载 4.下载完成后点击安装 5.同意协议,下一步 6.选择第二个Custon,自定义安装 7.选择安装路径 !记住安装路径 8.默认,下一步 9.取…

用于约束多目标优化的新型双阶段双种群进化算法

PPT链接:人工智能论文课程汇报介绍PPT资源-CSDN文库 A Novel Dual-Stage Dual-Population Evolutionary Algorithm for Constrained Multi-Objective Optimization IEEE Transactions on Evolutionary Computation, Volume 26, Issue 5, Pages 1129-1143, October …

C语言中的位操作

第一章 变量某位赋值与连续赋值 寄存器 | 值 //例如&#xff1a;a 1000 0011b a | (1<<2) //a 1000 0111 b 单独赋值 a | (3<<2*2) // 1011 0011b 连续赋值 第二章 变量某位清零与连续清零 寄存器 & ~&#xff08;&#xff09; 值 //例子&#xff1a;a …

uniapp 报错Invalid Host header

前言 在本地使用 nginx 反向代理 uniapp 时&#xff0c;出现错误 Invalid Host header 错误原因 因项目对 hostname 进行检查&#xff0c;发现 hostname 不是预期的&#xff0c;所以&#xff0c;报错 Invalid Host header 。 解决办法 这样做是处于安全考虑。但&#xff0…

Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程

Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程 Ubuntu 20.04 安装 OpenCV 和 OpenCV_contrib 教程前言 OpenCV概述核心功能优势特点应用领域安装与使用 OpenCV_contrib概述核心功能具体模块 安装与使用一、准备工作二、下载OpenCV和OpenCV_contrib三、编译和安装OpenCV四、…

Spring MVC 知识点全解析

Spring MVC 知识点全解析 Spring MVC 是一个基于 Java 的请求驱动的 Web 框架&#xff0c;属于 Spring 框架的一部分&#xff0c;广泛用于构建企业级 Web 应用程序。本文将详细阐述 Spring MVC 的核心知识点&#xff0c;包括其工作原理、关键组件、配置、请求处理、数据绑定、…