Qt扫盲-QBoxLayout 理论总结

news2024/11/24 8:05:13

QBoxLayout 理论总结

    • 1. 简述
    • 2. 创建布局器
    • 3. 添加布局元素
    • 4. 间隔设置
    • 5. 布局 操作

1. 简述

QBoxLayout 占用来自其父布局或 parentWidget()获得的空间,将其划分为一排框,并使在布局器里的控件填充一个框。

如果 QBoxLayout 的方向是 Qt::Horizontal ,则框将排成一行,大小合适。每个小部件(或其他框)将至少获得其最小大小,最多获得其最大大小。任何多余的空间都根据stretch factors 拉伸。只要不指定stretch factors,每个控件都是均分布局器的空间的。
在这里插入图片描述
如果 QBoxLayout 的方向是 Qt::Vertical,则框将放置在一列中,同样具有合适的大小。
在这里插入图片描述
一般直接用的QHBoxLayoutQVBoxLayout来布局的,很少用QBoxLayout 来直接的,但是QHBoxLayout 和 QVBoxLayout是QBoxLayout的子类,所有的功能全有,只是方向不一样,所有只需要知道QBoxLayout的功能就能用QHBoxLayout 和 QVBoxLayout。

使用 QHBoxLayoutQVBoxLayout 都可以参考这下面的内容。

2. 创建布局器

创建QBoxLayout的最简单方法是使用其中一个方便类,例如QHBoxLayout(用于Qt::Horizontal box)或QVBoxLayout(用于Qt::Vertical box)。

也还可以直接使用 QBoxLayout 构造函数,将其方向指定为 “从左到右”、“从右到左”、“从上到下”或“从下到上”。
如果 QBoxLayout 不是顶级布局(即它不管理小部件的所有区域和子布局),则必须先将其添加到其父布局中,然后才能对其进行任何操作。添加布局的正常方法是调用 parentLayout->addLayout()。

3. 添加布局元素

布局的元素应该是QLayoutItem,其实就布局的元素就是 QWidget、QSpaceItem、QLayout 类及其子类哈。

这里有一个stretch factors 缩放因子,其实就是在布局器里面,每个控件或者布局按照什么比例划分布局的空间。
在这里插入图片描述
第二个比例因子是2,其他是0,其实也就是 1,也就是说 第二个 布局元素按钮 大小的布局控件是其他的两倍。
在这里插入图片描述

添加这些的函数如下

函数名含义
addWidget()添加一个 widget到 布局器里,可以设置 缩放因子的
addSpacing()添加一个不伸缩的默认长度为0的弹簧 其实就是为了压缩到某一边
addStretch()添加一个伸缩默认minimum 长度为0的弹簧布局(自适应)
addLayout()添加一个 layout 到 布局器里,可以设置 缩放因子的,其实布局器里还可以布局的嘛

addSpacing() 、 addStretch() 其实都是为了布局压缩控件显示到一边,一个是自适应而已,一个指定那个弹簧长度的。
在这里插入图片描述

当然哈,这个add 系列的函数都是在QBoxLayout 最后添加的。我们也可以指定插入到布局器的位置

  • insertWidget(), insertSpacing(), insertStretch() 和 insertLayout()

4. 间隔设置

QBoxLayout 有两种间隔需要设置:

函数名含义
setContentsMargins()布局元素与布局器的边界,就是下面四周的间隔,默认是 9
setSpacing()就是布局元素之间的间隔,默认是 6

在这里插入图片描述
在这里插入图片描述

5. 布局 操作

和上面的添加布局器一样
用 removeWidget() 来移除 布局的控件
用 removeItem() 来移除 子布局器包括 QSpaceItem(就是弹簧布局器)
用 takeAt() 来移除指定位置的布局器,并返回这个布局器,其实和 removeItem() 类似

用 replaceWidget() 来替换两个控件的布局位置

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

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

相关文章

AC耦合电容仿真知多少

AC耦合电容,也叫DC blocking隔直电容,在几乎所有的高速串行链路中,都可以看到它的身影,它的主要作用是去掉信号中的直流偏置分量,同时让高频分量可以顺利通过,类似于一个高宽带的滤波器。 由于电容的焊盘通…

进销存软件哪个简单好用?来看看这5款

小企业进销存软件如何选择?我认为最重要的一点是适合。 市面上优秀的进销存软件很多,但质量参差不齐。同时,由于与企业的匹配度不一样,再高质量的软件,用起来可能也会十分费劲。 下面与大家分享进销存软件的选型要点…

【能效分析】某大厦电力运维系统的设计及应用

项目简介 安科瑞 李亚俊 壹捌柒贰壹零玖捌柒伍柒 某公司位于北京市大兴区,于2001年在大兴分局注册成立,该在公司多年的发展里,始终为终端客户提供好的产品和技术支持、健全的售后服务,该公司主要经营110KV及以下送电线路&#x…

美团阿里Java程序员晒工资被围观,总结:搞好千万级并发=实现百万年薪?

当我听到这句话的时候楞住了, 面试官就用一句话就问倒了我。 实际上,如果不在BAT这样的大厂工作,是很难接触到千万级别的高并发的。 但也正是这种难得,让各个大厂都抢着要这样的人才啊! #####小编经过长时间的研究、…

人工神经网络技术及应用,人工神经网络实际应用

1、什么是神经网络,举例说明神经网络的应用 我想这可能是你想要的神经网络吧! 什么是神经网络: 人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作…

Linux 自定义 RPM 包

目录 一、定制 rpm 包概述 1.1 什么是定制 rpm 包 1.2 为什么要定制 rpm 包 1.3 如何定制 rpm 包 二、安装 FPM 工具 2.1 我在安装过程出现如下错误:ERROR: Error installing fpm:childprocess requires Ruby version > 2.4.0. 2.2 解决办法 2.3 再次执…

SuperMap GIS的TIN地形数据优化

目录 一、优化背景 二、数据优化 2.1 去除无效值 2.1.1 栅格数据 2.1.2 瓦片数据 2.2 镶嵌数据集 2.3 生成优化 2.3.1 块存储瓦片 2.3.2 高精度 2.4 创建空间索引 一、优化背景 TIN指不规则三角网,是针对连续三维空间的不规则划分,其最小单元为不规则三角…

[附源码]Python计算机毕业设计高校课程思政案例库系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

【Vue路由】多级路由、路由传参、命名路由、params使用

文章目录多级路由案例实验总结路由传参案例实验总结命名路由路由的params参数多级路由 案例实验 我们尝试做出如下的效果&#xff1a; 首先项目结构&#xff1a; 我们直接看四个路由组件&#xff1a; About.vue <template><h2>我是About的内容</h2> </…

Android 音视频采集那些事

音视频采集 在整个音视频处理的过程中&#xff0c;位于发送端的音视频采集工作无疑是整个音视频链路的开始。在 Android 或者 IOS 上都有相关的硬件设备——Camera 和麦克风作为输入源。本章我们来分析如何在 Android 上通过 Camera 以及录音设备采集数据。 Camera 在 Andro…

web网页设计期末课程大作业:家乡旅游主题网站设计——河北8页HTML+CSS+JavaScript

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

【爬虫实战项目】Python爬虫批量旅游景点信息数据并保存本地(附源码)

前言 今天给大家介绍的是Python爬虫批量下载旅游景点信息数据&#xff0c;在这里给需要的小伙伴们代码&#xff0c;并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫&#xff0c;基本的是加请求头&#xff0c;但是这样的纯文本数据爬取的人会…

丰立智能在创业板上市:总市值达到33亿元,王友利夫妇为实控人

12月15日&#xff0c;浙江丰立智能科技股份有限公司&#xff08;下称“丰立智能”&#xff0c;SZ:301368&#xff09;在深圳证券交易所创业板上市。本次上市&#xff0c;丰立智能的发行价格为22.33元/股&#xff0c;发行数量为3010万股&#xff0c;募资总额约为6.72亿元&#x…

企业数字化进程中,商业智能 BI 如何降本增效

当下形势&#xff0c;不稳定性已是常态&#xff0c;国际形势复杂多变&#xff0c;疫情对各行各业的企业影响巨大&#xff0c;市场环境日新月异&#xff0c;要想在激烈的竞争中站稳脚跟&#xff0c;实现企业盈利&#xff0c;必须降本增效。你是否考虑过利用数字技术这些新手段让…

关于Revit中门窗插入问题技巧和门窗生成

一、Rvit中门窗插入时需要注意的问题和技巧 1.在平面中插入门窗时&#xff0c;在键盘中输入SM门窗会自动定义在墙体的中心位置&#xff0c;如图1所示。 2.空格键可以快速调整门开启的方向 3.在三维视图中插入门窗时&#xff0c;窗户的位置可以任意插入&#xff0c;而插入的门系…

基于springboot休闲娱乐代理售票系统设计与实现的源码+文档

摘要 网络的广泛应用给生活带来了十分的便利。所以把休闲娱乐代理售票管理与现在网络相结合&#xff0c;利用java技术建设休闲娱乐代理售票系统&#xff0c;实现休闲娱乐代理售票的信息化。则对于进一步提高休闲娱乐代理售票管理发展&#xff0c;丰富休闲娱乐代理售票管理经验…

math_常用放缩不等式及其变形@指数@对数@三角函数@一次函数

文章目录三角函数对数分式x>0x>0x>0x∈(0,12π)x\in(0,\frac{1}{2}\pi)x∈(0,21​π)正弦正切x∈(0,1)x\in(0,1)x∈(0,1)有界性正弦余弦反三角x∈Rx\in{R}x∈R指数和幂三角函数对数分式 x>0x>0x>0 sin⁡x<x(x>0)\sin{x}<x(x>0)sinx<x(x>0)…

[GYCTF2020]Easyphp

打开界面&#xff0c;一个登陆的窗口&#xff0c;想到sql注入 然后查看源码没有多余的提示 然后试了一下常见的www.zip成功下载文件 index.php发现了包含文件 <?php require_once "lib.php";if(isset($_GET[action])){require_once(__DIR__."/".$_…

数据结构 | 红黑树、平衡二叉树旋转、并查集

一、红黑树 1.1、红黑树的定义&#xff08;左根右&#xff0c;根叶黑&#xff0c;不红红&#xff0c;黑路同&#xff09; 前提&#xff0c;对于一棵二叉排序树(或者说二叉搜索树)&#xff0c;如果满足以下定义则是红黑树&#xff1a; ①每个结点或是红色&#xff0c;或是黑色的…

2022-12-15 工作记录--React-用swiper实现多行交错、同速、跑马灯效果的弹幕式轮播(坑)

React-用swiper实现多行交错、同速、跑马灯效果的弹幕式轮播&#xff08;坑&#xff09; 激动的心呀呀呀&#xff01;٩(๑>◡<๑)۶ 历时昨天一下午滴时间昨晚凌晨一点多&#x1f31b;还爬起来思考&#x1f914;这个问题&#xff08;眼睛一闭着&#x1f634;&#xff0c…