QT QVBoxLayout 垂直布局控件

news2024/11/28 22:37:02

        本文详细的介绍了QVBoxLayout控件的各种操作,例如:新建界面、添加控件、布局控件、显示控件、添加空白行、设置间距 、添加间距、设置位置、设置外边距、设置边距、添加固定宽度、方向上、方向下、方向左、方向右等等、 样式表等操作。

        实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。布局管理器可以完成两件事:自动调整控件的位置,包括控件之间的间距、对齐等;当用户调整窗口大小时,位于布局管理器内的控件也会随之调整大小,从而保持整个界面的美观。
        本系列QT全面详解文章目前共有二十二篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

 本文作者原创,转载请附上文章出处与本文链接。

QT QVBoxLayout 垂直布局控件目录

1 新建界面

2  添加控件

3 布局控件

4 显示控件

5 添加空白行

6 设置间距

7 添加间距

8 设置位置

9 设置外边距

10 设置边距

11 添加固定宽度

 12 方向上

13 方向下

14 方向左

15 方向右


1 新建界面

2  添加控件

        添加 QWidget 用来显示布局控件,添加一个 QGroupBox 用来放功能按钮。

3 布局控件

    QPushButton* pushButton1;
    QPushButton* pushButton2;
    QPushButton* pushButton3;
    QPushButton* pushButton4;
    QVBoxLayout *pLayout;

    pLayout = new QVBoxLayout();//水平布局

    pushButton1 = new QPushButton();        pushButton1->setText("pushButton_1");
    pushButton2 = new QPushButton();        pushButton2->setText("pushButton_2");
    pushButton3 = new QPushButton();        pushButton3->setText("pushButton_3");
    pushButton4 = new QPushButton();        pushButton4->setText("pushButton_4");

4 显示控件

void MainWindow::on_pushButton_clicked()
{
    //向布局管理器中添加指定的 widget 控件。
    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);
    pLayout->addWidget(pushButton3);
    pLayout->addWidget(pushButton4);

    ui->widget->setLayout(pLayout);
}

5 添加空白行

        添加一个空白行,整个窗口中除了控件占用的区域外,其它区域可以由多个(≥0)空白行分摊,分摊比例取余于各个空白行设置的 stretch 参数的值; strech 参数的默认值为 0,表示当窗口很小时,空白行可以不占据窗口空间。当窗口中包含多个 strech 值为 0 的空白行时,它们会平分窗口中的空白区域。

void MainWindow::on_pushButton_2_clicked()
{

    pLayout->addStretch();

    //向布局管理器中添加指定的 widget 控件。
    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);
    pLayout->addWidget(pushButton3);
    pLayout->addWidget(pushButton4);
    ui->widget->setLayout(pLayout);
}

6 设置间距

void MainWindow::on_pushButton_3_clicked()
{
    pLayout->setSpacing(150);
}

7 添加间距

void MainWindow::on_pushButton_4_clicked()
{
    pLayout->addStretch(50);

    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);

    pLayout->addStretch(150);
    pLayout->addWidget(pushButton3);

    pLayout->addStretch(10);
    pLayout->addWidget(pushButton4);

    ui->widget->setLayout(pLayout);
}

8 设置位置

void MainWindow::on_pushButton_5_clicked()
{
    //水平居左,垂直居上
    pLayout->addWidget(pushButton1,0,Qt::AlignLeft | Qt::AlignTop);
    //居右,居下
    pLayout->addWidget(pushButton2,0,Qt::AlignRight | Qt::AlignBottom);
    //居中
    pLayout->addWidget(pushButton3,0,Qt::AlignCenter );

    pLayout->addWidget(pushButton4);
}

9 设置外边距

void MainWindow::on_pushButton_11_clicked()
{
    pLayout->setMargin(100);
    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);
    pLayout->addWidget(pushButton3);
    pLayout->addWidget(pushButton4);
    ui->widget->setLayout(pLayout);
}

10 设置边距

void MainWindow::on_pushButton_12_clicked()
{
    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);
    pLayout->addWidget(pushButton3);
    pLayout->addWidget(pushButton4);

    ui->widget->setLayout(pLayout);


//    QMargins margins;
//    margins.left();
//    pLayout->setContentsMargins(margins);

    //与setMargin功能相同,但是可以将左、上、右、下的外边距设置为不同的值
    pLayout->setContentsMargins(10, 100, 10, 100 );


}

11 添加固定宽度

void MainWindow::on_pushButton_10_clicked()
{
    //向布局管理器中添加指定的 widget 控件。
    pLayout->addWidget(pushButton1);
    pLayout->addWidget(pushButton2);
    pLayout->addSpacing(50);
    pLayout->addWidget(pushButton3);
    pLayout->addWidget(pushButton4);
    ui->widget->setLayout(pLayout);
}

 12 方向上

void MainWindow::on_pushButton_6_clicked()
{

    pLayout->setDirection(QBoxLayout::BottomToTop); //设置布局方向
    this->setLayout(pLayout);
}

13 方向下

void MainWindow::on_pushButton_7_clicked()
{
    pLayout->setDirection(QBoxLayout::TopToBottom);
    this->setLayout(pLayout);
}

14 方向左

void MainWindow::on_pushButton_8_clicked()
{
    pLayout->setDirection(QBoxLayout::LeftToRight);
    this->setLayout(pLayout);
}

15 方向右

void MainWindow::on_pushButton_9_clicked()
{
    pLayout->setDirection(QBoxLayout::RightToLeft);
    this->setLayout(pLayout);
}

16 其它文章

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客


QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽


QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客
QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

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

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

相关文章

Qt | 实现一个简单的可以转动的仪表盘

环境:vs2017Qt5.14.2 效果图: 准备工作: 效果图中的可以转动的仪表盘效果分为三个部分: 背景图(就是带去掉中间白色原点,去掉中间蓝色指针省下的部分);指针图片(中间蓝…

客户端发布后,一体机无法下载和安装

一、问题描述:客户端和服务端在不同网段,可以ping通IP,但是主机名ping不通,客户端提示『OPC 找不到主机名』 解决方法: 修改客户端机器的『hosts』文件,路径为: 『C:\Windows\System32\driver…

【初学人工智能原理】【2】方差代价函数:知错

前言 本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 本文【原文】章节来自课程的对白,由于缺少图片可能无法理解,故放到了最后,建议直接看代码(代码放到了前面)。 代码实…

一、linux系统基础

一、搭建Linux学习环境 如何安装linux操作系统: (1)安装独立的Linux系统,不再安装其他操作系统。 (2)安装Windows与Linux并存的多操作系统,启动时通过菜单选择要启动的操作系统。 (3)在虚拟机中安装Linux操作系统。 本次学习采用第三种方式,在虚拟机中安装linux操…

清理 C 盘空间最简单的方法

目录 一、清理C盘空间 二、删除休眠文件 三、删除软件缓存 四、清理临时文件 一、清理C盘空间 Windows系统内置的磁盘,都带有清理功能,我们可以先来清理磁盘空间,鼠标选择C盘,右键【属性】,可以看到有个【磁盘清理…

irreader RSS 订阅源阅读器工具软件 - 一款强大的网络内容阅读器

irreader 是一款强大的网络内容阅读器,不仅支持订阅 RSS 文章,还能够订阅网站、播客等内容,将众多订阅源聚合于一处,告别纷杂的互联网信息。 方便的内置订阅源 软件界面采取源列表、文章列表和内容区三栏式布局,内置的…

Docker操作MongoDB启停

对于docker安装配置有疑问的可以看这一篇Docker概念、安装以及配置镜像加速器 docker images可查看docker已有镜像 docker pull mongo:5.0.16拉取镜像(可从DockerHub查找自己所需) docker ps -a查看docker进程 docker run --name mongo -d -p 27017:270…

原理解析:HyperBDR+华为云,高自动化低TCO的云容灾解决方案

什么是HyperBDR云容灾? HyperBDR云容灾是云原生业务级别容灾工具,充分利用云原生能力提升容灾效率,降低容灾TCO。采用块级别全量增量复制技术,备份效率高;最新无主机数据同步技术,让容灾数据存储成本更低&…

JS高级 -- 深入面向对象

1. 编程思想 1.1 面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 面向过程,就是按照我们分析好了的步骤,按照步骤解决问题 eg:蛋炒…

Win10电脑开机蓝屏多次重启无效怎么办?

Win10电脑开机蓝屏多次重启无效怎么办?有用户在使用电脑的时候遇到了系统蓝屏的问题,想要通过重新启动的方式来解决问题,但是多次重新启动电脑都还是遇到蓝屏的问题。那么这个情况要怎么去进行解决呢?来看看以下的处理方法吧。 准…

数字化转型导师坚鹏:数字化转型背景下的保险公司人力资源管理

数字化转型背景下的保险公司人力资源管理 课程背景: 很多保险公司存在以下问题: 不清楚保险公司数字化转型目前的发展阶段与重要应用? 不知道保险公司数字化转型给保险公司人力资源管理带来哪些机遇与挑战? 不知道保险公司…

速锐得从冷链管理数字网关看工业物联网的发展与创新

工业互联网倡导者将其称为“第三次创新”。但如果真是这样,我们就仍处于发展初期,因为数字互联网技术的全部潜能尚未在工业技术领域全面实现。 我们可以看到智能设备和智能系统开始与工业机器、处理器、云联结,但并没有形成行业规模。创建工…

使用express框架+mongodb快速搭建后端项目

首先node环境不用多说 然后我们使用express脚手架 express-generator 快速创建项目目录 全局安装express-generator npm i -g express-generator 复制代码 接着使用express命令创建项目, programnem是你的项目文件夹名 express <programname> 复制代码 然后我们就…

2023五一数学建模竞赛(五一赛)选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<A<B&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;无人机定点投放问题 这道题是传统的物理类题目&#xff0c;基本每次建模竞赛都会有。由于这道题目并未给明数据&#xff0c;所以数据获取和搜集资料是…

文件共享服务

~ 创建用户目录共享文件夹 ~ 本地目录为&#xff1a;d:/share\users&#xff0c;允许所有域用户可读可写。在本目录下为所有用户据添加一个以名称命名的文件夹&#xff0c;该文件夹将设置为所有域用户的home目录&#xff0c;用户登录计算机成功后&#xff0c;自动映射改在到H卷…

智尚转债上市价格预测

智尚转债 基本信息 转债名称&#xff1a;智尚转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;6.9958亿元。 正股名称&#xff1a;南山智尚&#xff0c;今日收盘价&#xff1a;11.49元&#xff0c;转股价格&#xff1a;12.33元。 当前转股价值 转债面值 …

R语言 | 因子

目录 一、使用factor()函数或as.factor()函数建立因子 二、指定缺失的Levels值 三、labels参数 四、因子的转换 五、数值型因子转换时常见的错误 六、再看levels参数 七、有序因子 八、table()函数 九、认识系统内建的数据集 在类别数据中&#xff0c;有些数据是可以排序…

适用于Windows PC和Mac的最佳录屏软件Camtasia2023强悍来袭

Camtasia2023是一款屏幕录制和视频剪辑软件&#xff0c;教授课程&#xff0c;培训他人&#xff0c;以更快的速度和更吸引人的方式进行沟通和屏幕分享。使您在Windows和Mac上进行录屏和剪辑创作专业外观的视频变得更为简单。 让您用更短的时间创作更多的视频。无需任何经验&…

继富士康之后,又一个8万人大厂转移印度,但仍在中国留有后路

日前消息指和硕旗下的昌硕工厂正在搬迁&#xff0c;预计将全数搬迁至印度&#xff0c;这是苹果代工厂之中又一家跟随苹果的脚步转移至印度&#xff0c;那么印度制造真的靠谱么&#xff1f; 苹果推动代工厂向印度转移似乎已是坚定不移&#xff0c;它最先推动纬创远赴印度设厂&am…

【Redis16】Redis进阶:内存优化

Redis进阶&#xff1a;内存优化 在基础学习的最后一篇&#xff0c;我们了解到了 Redis 的底层数据类型可以通过 OBJECT ENCODING 来进行查看。也了解过一些关于这些底层数据类型的知识。今天&#xff0c;我们就来更加深入的学习一下这些底层的数据类型&#xff0c;并据此来了解…