【Qt】垂直布局管理器QVBoxLayout

news2024/12/23 16:36:43

 垂直布局管理器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.coloradmin.cn/o/2083735.html

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

相关文章

2-79 基于matlab的卷积稀疏的形态成分分析的医学图像融合

基于matlab的卷积稀疏的形态成分分析的医学图像融合&#xff0c;基于卷积稀疏性的形态分量分析 (CS-MCA) 的稀疏表示 (SR) 模型&#xff0c;用于像素级医学图像融合。通过 CS-MCA 模型使用预先学习的字典获得其卡通和纹理组件的 CSR。然后&#xff0c;合并所有源图像的稀疏系数…

13-springcloud gateway集成nacos实现负载均衡

网关作为访问系统的入口&#xff0c;负载均衡是必选项而不是可选项&#xff0c;本文介绍gateway与nacos集成&#xff0c;实现负载均衡的过程。关于springcloud gateway的基本用法&#xff0c;同学可以看看上篇文章: 12-使用gateway作为网关。 0、环境 jdk&#xff1a;1.8spri…

【GIT】idea中实用的git操作,撤回commit,撤回push、暂存区使用

IDEA中最常见的UI操作&#xff1a;【GIT】Idea中的git命令使用-全网最新详细&#xff08;包括现象含义&#xff09; 文章目录 问题一&#xff1a; idea撤回仅commit错误的代码&#xff08;仅本地仓库&#xff0c;因为还没推送到远程&#xff09;问题二&#xff1a; idea撤回Com…

【提示学习论文】CoCoLe:Conceptual Codebook Learning for Vision-Language Models

Conceptual Codebook Learning for Vision-Language Models&#xff08;ECCV 2024&#xff09; CPL的改进暂无代码 CPL 详见CPL论文 CoCoLe a&#xff1a;手工概念缓存的建立过程b&#xff1a;制作提示的过程&#xff0c;将图像输入Ev&#xff0c;得到image features v 作…

【C++ Primer Plus习题】6.4

问题: 解答: #include <iostream> using namespace std;const int strsize 40; const int usersize 40;typedef struct _Bop {char fullname[strsize];char title[strsize];char bopname[strsize];int preference; }Bop;Bop bop_user[usersize] {{"Wimp Macho&q…

SpringBoot多环境日志配置

SpringBoot 默认使用 LogBack 日志系统 默认情况下&#xff0c;SpringBoot项目的日志只会在控制台输入。 如果想查询历史日志则无法找到&#xff0c;我们需要一个日志系统来统一管理日志。 一般正式项目会有单独日志系统&#xff0c;将日志操作存入数据库。 第一种方式是 在 ap…

如何理解select(1)、select(*)、select(column)背后的差异?

先说结论 select&#xff08;1&#xff09;、select&#xff08;*&#xff09;都是基于结果集进行的行数统计&#xff0c;统计到NULL行select&#xff08;column&#xff09;则受到索引设置的影响&#xff0c;默认会排除掉NULL行 在数据库查询中&#xff0c;SELECT语句用于从数…

第 7 章 B+树索引的使用

7.1 索引的代价 空间上的代价 每建立一个索引都要为它建立一棵B树&#xff0c;B树的每一个节点都是一个数据页&#xff0c;一个页默认占用16KB的空间。 时间上的代价 每次对表中的数据进行增、删、改操作时&#xff0c;都需要去修改各个B树索引。 一个表上的索引越多&#x…

从零上手CV竞赛Task2 # Datawhale AI夏令营

文章目录 平台参赛平台云平台 Task 1 从零上手CV竞赛下载baseline相关文件一键运行baseline&#xff01;&#xff08;大约需要25分钟&#xff09;赛题解析数据集提交结果违法标准注意事项 下载生成的文件结果如图最后要记得关机 不然一直消耗算力 Task 2 建模方案解读与进阶物体…

光性能 -- OMA(光调制幅度)

基本概念 OMA&#xff08;Optical Modulation Amplitude&#xff09;&#xff1a;光调制幅度&#xff0c;是光信号测试中的一项指标。是指光模块接收到的信号”1”的光功率和信号“0”的光功率的差值。即&#xff1a; Pavg&#xff08;average optical power&#xff09;&#…

WxPython可视化编辑器

作者&#xff1a;陈炳强 WxPython是python的一个用来写桌面程序的模块,目前只写了小部分功能跟组件, 用Python写中文&#xff0c;非常方便&#xff01; 下载地址&#xff1a;https://pan.quark.cn/s/ba19b2472246

LabVIEW如何适应航天系统的要求

随着航天任务的复杂性和精确性要求不断提高&#xff0c;软件系统在其中扮演的角色变得愈发关键。LabVIEW凭借其强大的实时数据处理能力、高可靠性、以及灵活的系统集成和仿真工具&#xff0c;已逐渐成为满足航天系统需求的重要开发平台。通过全面适应航天工程的严格标准&#x…

守护电动“心脏”!仿真APP在汽车电池包随机振动分析中的应用

汽车电动化、智能化、绿色化发展已成为全球各国应对气候变化、实现低碳发展的共同选择。在此背景下&#xff0c;新能源汽车持续高速发展。电池包作为新能源汽车的“心脏”&#xff0c;是其主要动力来源&#xff0c;直接影响车辆的续航里程与行驶安全。电池包结构的安全可靠性对…

Linux——性能调优工具一览

一、CPU 1.调优工具 根据指标找工具 性能指标工具说明 平均负载 uptime、top uptime最简单、top提供了更全的指标 系统整体CPU使用率 vmstat、mpstat、top、sar、/proc/stat top、vmstat、mpstat只可以动态查看&#xff0c;而sar还可以记录历史数据 /proc/stat是其他性…

界面控件Telerik UI for ASP.NET Core 2024 Q2亮点 - AI与UI的融合

Telerik UI for ASP.NET Core是用于跨平台响应式Web和云开发的最完整的UI工具集&#xff0c;拥有超过60个由Kendo UI支持的ASP.NET核心组件。它的响应式和自适应的HTML5网格&#xff0c;提供从过滤、排序数据到分页和分层数据分组等100多项高级功能。 本文将介绍界面组件Teler…

【MySQL 11】索引 (带思维导图)

文章目录 &#x1f308; 一、索引介绍⭐ 1. 索引的概念⭐ 2. 索引的分类⭐ 3. 索引的价值 &#x1f308; 二、认识磁盘⭐ 1. MySQL 与存储⭐ 2. 磁盘的物理结构⭐ 3. 磁盘的随机访问与连续访问 &#x1f308; 三、MySQL 与磁盘交互⭐ 1. MySQL 与磁盘交互的基本单位⭐ 2. MySQL…

一文深度了解堆

什么是堆&#xff1f; 堆&#xff08;Heap&#xff09;是一种基于数组的树形数据结构&#xff0c;其中每个节点都有一个值&#xff0c;且每个节点的值都大于等于&#xff08;或小于等于&#xff09;其子节点的值。堆分为大顶堆&#xff08;Max Heap&#xff09;和小顶堆&#…

回答网友一个C#对话框位置的问题

起因 ‭ 2024-08-28 19:40:20 colorDialog 打开出现的 位置控制不了 鸽子 2024-08-28 20:06:06 你是可以控制的 ‭ 0:00:47 试了下没用&#xff0c;可能是系统 问题吧 代码 位置的设置 SetWindowPos(hWnd, IntPtr.Zero, 0, 0, 0, 0, 1); 核心代码 protected override IntPt…

django学习入门系列之第十点《django的模板语法》

文章目录 获取请求与响应request获取请求方式在url中传递值在结构体中传递值返回一个值读取HTML中的内容 重定向&#xff08;跳转网页&#xff09;往期回顾 获取请求与响应 request request是一个对象&#xff0c;封装了用户通过浏览器发送过来的所有数据获取请求方式 获取请…

Ai产品经理的探索:技能、机遇与未来展望

Ai时代的产品经理 随着人工智能&#xff08;AI&#xff09;的飞速发展&#xff0c;AI已经从一个前沿技术概念逐步演变为驱动各行业创新的核心力量。从智能助手到自动驾驶&#xff0c;从个性化推荐系统到图像识别&#xff0c;AI正在以不可思议的速度改变着我们的生活方式和工作…