Qt控件---布局管理类

文章目录

  • QVBoxLayout(垂直布局)
  • QHBoxLayout(水平布局)
  • QGridLayout(网格布局)
    • 拉伸
  • QFormLayout(表单布局)
  • QSpacerItem(空白)

QVBoxLayout(垂直布局)

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

img

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *b1 = new QPushButton("按钮1");QPushButton *b2 = new QPushButton("按钮2");QPushButton *b3 = new QPushButton("按钮3");ui->verticalLayout->addWidget(b1);ui->verticalLayout->addWidget(b2);ui->verticalLayout->addWidget(b3);
}

这样显示的效果就为垂直方向了

img

QHBoxLayout(水平布局)

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

img

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *b1 = new QPushButton("按钮1");QPushButton *b2 = new QPushButton("按钮2");QPushButton *b3 = new QPushButton("按钮3");ui->horizontalLayout->addWidget(b1);ui->horizontalLayout->addWidget(b2);ui->horizontalLayout->addWidget(b3);
}

这样显示的效果就为水平方向了

img

QGridLayout(网格布局)

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

img

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *b1 = new QPushButton("按钮1");QPushButton *b2 = new QPushButton("按钮2");QPushButton *b3 = new QPushButton("按钮3");QPushButton *b4 = new QPushButton("按钮4");ui->gridLayout->addWidget(b1, 0, 0);ui->gridLayout->addWidget(b2, 0, 1);ui->gridLayout->addWidget(b3, 1, 0);ui->gridLayout->addWidget(b4, 1, 1);
}

img

拉伸

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *b1 = new QPushButton("按钮1");QPushButton *b2 = new QPushButton("按钮2");QPushButton *b3 = new QPushButton("按钮3");QPushButton *b4 = new QPushButton("按钮4");ui->gridLayout->addWidget(b1, 0, 0);ui->gridLayout->addWidget(b2, 0, 1);ui->gridLayout->addWidget(b3, 1, 0);ui->gridLayout->addWidget(b4, 1, 1);// 第 0 列拉伸⽐例设为 1;ui->gridLayout->setColumnStretch(0, 1);// 第 1 列拉伸⽐例设为 3, 即为第 1 列的宽度是第 0 列的 3 倍ui->gridLayout->setColumnStretch(1, 3);
}

img

QFormLayout(表单布局)

img

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建三个 labelQLabel* l1 = new QLabel("姓名");QLabel* l2 = new QLabel("年龄");QLabel* l3 = new QLabel("电话");// 创建三个 lineEditQLineEdit* e1 = new QLineEdit();QLineEdit* e2 = new QLineEdit();QLineEdit* e3 = new QLineEdit();// 创建⼀个提交按钮QPushButton* btn = new QPushButton("提交");// 把上述元素添加到 layout 中ui->formLayout->addRow(l1, e1);ui->formLayout->addRow(l2, e2);ui->formLayout->addRow(l3, e3);ui->formLayout->addRow(NULL, btn);
}

img

QSpacerItem(空白)

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

属性说明
width宽度
height高度
hData水平方向的 sizePolicy QSizePolicy::Ignored:忽略控件的尺寸,不对布局产生影响。 QSizePolicy::Minimum:控件的最小尺寸为固定值,布局时不会超过该值。 QSizePolicy::Maximum:控件的最大尺寸为固定值,布局时不会小于该值。 QSizePolicy::Preferred:控件的理想尺寸为固定值,布局时会尽量接近该值。 QSizePolicy::Expanding:控件的尺寸可以根据空间调整,尽可能占据更多空间。 QSizePolicy::Shrinking:控件的尺寸可以根据空间调整,尽可能缩小以适应空间。
vData垂直方向的sizePolicy,选项和上面一样
QPushButton *b1 = new QPushButton("按钮1");
QPushButton *b2 = new QPushButton("按钮2");ui->horizontalLayout->addWidget(b1);
ui->horizontalLayout->addWidget(b2);

直接插入两个控件是紧挨着的

img

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton *b1 = new QPushButton("按钮1");QPushButton *b2 = new QPushButton("按钮2");ui->horizontalLayout->addWidget(b1);ui->horizontalLayout->addSpacerItem(new QSpacerItem(100, 20));ui->horizontalLayout->addWidget(b2);
}

可以看到两个按键明显分开了,变小是因为水平布局的空间大小不够了

img

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

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

相关文章

【算法】分治-快排

个人主页 : zxctscl 如有转载请先通知 题目 前言1. 75. 颜色分类1.1 分析1.2 代码 2. 912. 排序数组2.1 分析2.2 代码 3. 215. 数组中的第K个最大元素3.1 分析3.2 代码 4. LCR 159. 库存管理 III4.1 分析4.2 代码 前言 分治就是分而治之 1. 75. 颜色分类 1.1 分析…

MySQL Innodb 中的排它锁、共享锁、意向锁、记录锁、间隙锁、临键锁、死锁讲解

一、MySQL 锁机制 MySQL作为流行的关系型数据库管理系统之一,在处理并发访问时,锁起着至关重要的作用。锁的使用可以确保数据的完整性,同时也是实现并发操作的必备工具。在MySQL Innodb 引擎中锁可以理解为两个方向的东西,一个是…

MES生产管理系统:私有云、公有云与本地化部署的比较分析

随着信息技术的迅猛发展,云计算作为一种新兴的技术服务模式,已经深入渗透到企业的日常运营中。在众多部署方式中,私有云、公有云和本地化部署是三种最为常见的选择。它们各自具有独特的特点和适用场景,并在不同程度上影响着企业的…

lanqiao.602 迷宫

题目&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; char mp[31][51]; //稍微开大一点 char k[4]{D,L,R,U}; //按字典序记录路径 int dirx[]{1,0,0,-1},d…

【ARM 裸机】汇编 led 驱动之原理分析

1、我们为什么要学习汇编&#xff1f;&#xff1f;&#xff1f; 之前我们或许接触过 STM32 以及其他的 32 位的 MCU ,都是基于 C 语言环境进行编程的&#xff0c;都没怎么注意汇编&#xff0c;是因为 ST 公司早已将启动文件写好了&#xff0c;新建一个 STM32 工程的时候&#…

transformer上手(3) —— 开箱即用的 pipelines

1 开箱即用的 pipelines Transformers 库将目前的 NLP 任务归纳为几下几类&#xff1a; 文本分类&#xff1a;例如情感分析、句子对关系判断等&#xff1b;对文本中的词语进行分类&#xff1a;例如词性标注 (POS)、命名实体识别 (NER) 等&#xff1b;文本生成&#xff1a;例如…

centos编译安装nginx1.24

nginx编译1.24&#xff0c;先下载安装包 机器通外网的话配置nginx的yum源直接yum安装 vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org…

Android 包命名规范

Android包目录的命名规范会直接影响到整个APP攻城后期的开发效率和拓展性。 常用两种命名方式&#xff1a;PBL&#xff08;package by layer ) 和PBF(pakcage by Feature) layer 英/ˈleɪə(r)/ 翻译&#xff1a;层 feature 英/ˈfiːtʃə(r)/ 翻译&#xff1a;特色 1 Pac…

【MySQL】MySQL在Centos 7环境安装

目录 准备工作 第一步&#xff1a;卸载不要的环境 第二步&#xff1a;下载官方的mysql 第三步 上传到Linux中 第四步 安装 正式安装 启动 ​编辑 登录 准备工作 第一步&#xff1a;卸载不要的环境 使用root进行安装 如果是普通用户&#xff0c;使用 su - 命令&#…

RUM 最佳实践-交互延迟的探索与发现

FID 在互联网高速发展的时代&#xff0c;用户体验已成为企业竞争的关键所在。网页性能作为用户体验的重要组成部分&#xff0c;直接影响着用户的满意度和工作效率。First Input Delay&#xff08;FID&#xff09;作为衡量网页性能的重要指标&#xff0c;越来越受到业界关注。今…

走进MySQL:从认识到入门(针对初学者)

一&#xff0c;引言 MySQL是一款久负盛名且广泛应用的关系型数据库管理系统&#xff0c;自1995年Michael Widenius和David Axmark在瑞典和芬兰发起研发以来&#xff0c;其发展历程可谓辉煌且深远。作为开源软件的代表&#xff0c;MySQL以其卓越的成本效益、高性能及高可靠性赢得…

前端实现自动获取农历日期:探索JavaScript的跨文化编程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…