【Qt】垂直布局管理器QVBoxLayout

 垂直布局管理器QVBoxLayout

        在之前学习Qt的过程中,将控件放在界面上,都是依靠“手动”的方式来布局的,但是手动调整的方式是不科学的。

  1. 手动布局的方式非常复杂,而且不精确
  2. 无法对窗口大小进行自适应

因此Qt引入布局管理器来解决此类问题。

使用QVBoxLayout表示垂直布局管理器(V 是 vertical 的缩写)

  • 核心属性
属性说明

layoutLeftMargin

左侧边距

layoutRightMargin

右侧边距

layoutTopMargin

上⽅边距

layoutBottomMargin

下方边距

layoutSpacing

相邻元素之间的边距

layout只是用于界面布局,并没有提供信号。

例子:使用QVBoxLayout管控多个控件

(1)编写代码,创建三个按钮和一个布局管理器,并且将按钮添加在布局管理器中。

  • 使用addWidget将控件添加到布局管理器中。
  • 使用setLayout设置布局管理器到widget中。 

(2)运⾏程序, 可以看到此时界⾯上的按钮就存在于布局管理器中. 随着窗⼝尺⼨变化⽽发⽣改变

 

(3)代码实现

#include "widget.h"
#include "ui_widget.h"#include <QPushButton>
#include <QVBoxLayout>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 设置三个按钮QPushButton* botton1 = new QPushButton("按钮1");QPushButton* botton2 = new QPushButton("按钮2");QPushButton* botton3 = new QPushButton("按钮3");// 设置一个布局管理器QVBoxLayout* layout = new QVBoxLayout();layout->addWidget(botton1);layout->addWidget(botton2);layout->addWidget(botton3);// 将布局管理器设置到widget中this->setLayout(layout);
}Widget::~Widget()
{delete ui;
}

只能设置一个布局管理器。 

例子:创建俩个QVBoxlayout

上述例子中,布局管理器只能使Widget设置一个布局管理器,实际也可以在Qt Designer在一个窗口中创建多个布局管理器。    

(1)在界面管理器中设置俩个QVBoxlayout,在QVBoxlayout中设置三个按钮

(2)运行程序,可以看到按钮已经根据layout自动排列好,只是并不会通过改变窗口而改变这些按钮

在代码中创建layout,其实只是创建一个layout。如果在 QtDesigner 中创建的layout,会先创建一个Widget,然后再在这个新的Widget中添加layout。这个Widget是窗口的Widget的子类。

 

layout标签表示的是布局管理器的本体,外面自动创建出了一个Widget,每个layout里面又可以包含若干个item(也就是一个按钮)。

可以先拖拽layout,然后再往 layout 中拖拽其他的控件。

当然也可以拖拽其他控件,然后将这些控件进行选中,最后再给这些控件套上 layout。

这个按钮就是将选中的按钮套上一个垂直布局的 layout。

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

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

相关文章

缓存Mybatis一级缓存与二级缓存

缓存 为什么使用缓存 缓存(cache)的作用是为了减去数据库的压力,提高查询性能,缓存实现原理是从数据库中查询出来的对象在使用完后不销毁,而是存储在内存(缓存)中,当再次需要获取对象时,直接从内存(缓存)中提取,不再向数据库执行select语句,从而减少了对数据库的查询次数,因此…

无法启动此程序,因为计算机中丢失dll,整理了7种解决方法!

当电脑出现“无法启动此程序&#xff0c;因为计算机中丢失dll”的错误弹窗时&#xff0c;这通常意味着系统中的DLL文件出现了缺失或错误。DLL文件是动态链接库文件&#xff0c;它们在软件运行中起着至关重要的作用。 造成dll文件缺失和错误的原因有很多&#xff0c;大部分问题都…

python爬虫,使用pyppeteer异步,爬取,获得指定标签内容

获得指定 #pip install pyppeteer,使用 Pyppeteer&#xff08;异步方案&#xff09; import asyncio from pyppeteer import launch async def main():browser await launch()page await browser.newPage()await page.goto(http://xxx/#/login)# 等待页面加载完成await page…

算法-容斥原理

venn图&#xff1a; 如何求三个圆圈的面积之和&#xff1f; 此时&#xff0c;||不代表绝对值&#xff0c;代表集合的个数 解题思路&#xff1a; 实际上&#xff0c;我们不需要知道每个集合中的元素具体是什么&#xff0c;只需要知道每个集合的大小 例如 &#xff0c;表示10以…

Golang小项目(1)

Golang小项目(1) 前言 本项目适合Golang初学者,通过简单的项目实践来加深对Golang的基本语法和Web开发的理解。 建议前往 torna.top 查阅效果更佳 项目结构 . ├── main.go └── static├── form.html└── index.html项目流程图 定义三个路由: /:首页,显示static…

Windows隐藏起你的秘密文件以及文件夹工具

我们都知道&#xff0c;在 Windows 中可以右键文件夹&#xff0c;选择”属性“&#xff0c;勾选”隐藏“来实现隐藏某个文件夹。 我们还知道&#xff0c;在 Windows 中可以选择勾选 ”显示隐藏的项目和文件夹“&#xff0c;来使上述方法变得形同虚设。 本工具就是用于解决以上…

计算机网络模型

应用层 应用层的作用是为应用程序或用户请求提供各种请求服务。 该层协议定义了应用进程之间的交互规则&#xff0c;通过不同的应用层协议为不同的网络应用提供服务。例如域名系统DNS、支持万维网应用的HTTP协议&#xff0c;电子邮件系统采用的SMTP协议等。 表示层 表示层&…

记录|Form1中嵌套Form2时的频闪问题解决[不同于常见的三部曲]

目录 前言一、常见的解决方案二、自己创建渐变色组件GradientPanel三、最终效果展示更新时间 前言 参考文章&#xff1a; C#画图解决闪烁问题 [解决winform中重绘时控件闪烁的问题](panel1.GetType().GetProperty(“DoubleBuffered”,System.Reflection.BindingFlags.Instance …

东芝玉兔2.0明日震撼开售,洗衣机界的全新革命

明天&#xff0c;备受瞩目的东芝玉兔2.0 Pro洗烘套餐将正式开售。这款产品不仅在外观上采用了超薄全嵌的设计&#xff0c;梨川白的配色更是让人眼前一亮。更重要的是&#xff0c;它在功能上进行了全面升级&#xff0c;为用户提供了更全能的服务。 UFB超威跑2.0银离子除菌升级版…

JAVA中的线程池说明一

目录 1.为什么需要线程池? 2.什么是线程池? 3.标准库中的线程池 4.实现自定义线程池 1.为什么需要线程池? 线程的存在意义在于解决并发编程中进程开销过大的问题&#xff0c;因此引入了线程&#xff0c;也被称为"轻量级线程"。相比于创建进程&#xff0c;创建…

【学术会议征稿】第五届机械工程、智能制造与自动化技术国际学术会议(MEMAT 2024)

第五届机械工程、智能制造与自动化技术国际学术会议&#xff08;MEMAT 2024&#xff09; The 5th International Conference on Mechanical Engineering, Intelligent Manufacturing and Automation Technology 目前&#xff0c;我国自动化技术随着科学技术水平的不断提高已经…

功率器件和滤波器件的选型及测试方法

目录 一、功率器件的选型及测试方法 1.1功率器件的选型 1.2功率器件的测试方法 二、滤波器件的选型及测试方法 2.1滤波器件的选型 2.2滤波器件的测试方法 三、表格总结 一、功率器件的选型及测试方法 1.1功率器件的选型 在电子电路设计中&#xff0c;功率器件的选择是…

Mysql索引不当引发死锁问题

1. 前言 在并发量很低的情况下&#xff0c;mysql的响应时延一切正常&#xff0c;一旦并发量上去了&#xff0c;mysql就会出现死锁的情况&#xff0c;你有没有遇到过&#xff1f;到底是是什么原因导致的呢&#xff0c;让我们一起看看真实的案例。 2.遇到的问题 先介绍一下我们…

二进制、十进制转换进阶--小数点后的转换

上一篇文章详细介绍了整数的二进制,八进制,十进制,十六进制之间的转换 详情可前往:二进制、八进制、十进制、十六进制的相互转换-CSDN博客 这篇介绍含有小数点之间的转换 一:二进制转十进制 二进制 101.11 可以分为两部分 101 和 0.11 整数部分 101 转换的方式是从右到左,…

【文心智能体】通过低代码工作流编排创建应用《挑战奥运问答拿奖牌》

欢迎来到《小5讲堂》 这是《文心智能体平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景整体界面大模型链提示词模型 工具链HTTP请求工具 逻辑…

游戏开发设计模式之策略模式

目录 策略模式在游戏开发中的具体应用案例有哪些&#xff1f; 如何在Unity中实现策略模式以优化角色行为和AI策略&#xff1f; 策略模式与其他设计模式&#xff08;如观察者模式、状态模式&#xff09;在游戏开发中的比较优势是什么&#xff1f; 策略模式的优势 观察者模式…

【Qt笔记】QCommandLinkButton控件详解

目录 引言 一、概述 二、特性与属性 1. 属性 2. 样式 三、基本用法 1. 引入必要的头文件 2. 创建和配置 QCommandLinkButton 3. 布局管理 四、高级用法 1. 自定义绘制 2. 动态内容更新 五、代码解析示例 注意 总结 引言 QCommandLinkButton 是 Qt 框架中 QtWi…

android关于binder的简单通信过程

文章目录 简述aidl文件服务端的实现客户端的实现验证过程 简述 主要实现的是两个应用之间跨进程通信的过程&#xff0c;client端调用server端的具体实现&#xff0c;然后server端给client回调数据&#xff0c;详细如下所示 aidl文件 以下的文件需要在服务端与客户端都配置一…

外包干了两年,快要废了。。。

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 简单的说下&#xff0c;我大学的一个同学&#xff0c;毕业后我自己去了自研的公司&#xff0c;他去了外包&#xff0c;快两年了我薪资、技术各个方面都有了很大的…

Linux top 命令详解

top命令是Linux和Unix系统中一个非常强大的实时系统监控工具&#xff0c;它可以显示系统中各个进程的实时动态管理视图&#xff0c;类似于Windows的任务管理器。在需要诊断系统性能问题或监控资源使用情况时是非常有用的。 使用top命令 在命令行中输入top并回车&#xff0c;即…