Qt布局管理器(QHBoxLayout,QVBoxLayout)
创始人
2024-05-09 21:17:11
0

文章目录

  • 布局管理器是什么
  • 使用代码添加布局管理器
    • QVBoxLayout
    • QHBoxLayout
  • 使用ui文件添加布局管理器
    • 布局管理器的嵌套


提示:以下是本篇文章正文内容,下面案例可供参考

布局管理器是什么

可以把一些组件按一定的次序排列,这就是布局管理器。
他可以自动排列窗口中的界面组件
窗口变化后自动更新界面组件。

使用代码添加布局管理器

QVBoxLayout

在这里插入图片描述
QVBoxLayout:按垂直的顺序排列组件

添加组件/其他的布局管理器:

addWidget(QWidget*);
addLayout(Layout*);

设置布局管理器管理指定窗口:

Widget->setLayout(Layout*);

设置组件和窗口一起变大变小:

QWidget->setSizePolicy();大家可以查帮助文档,我现在列出一部分QSizePolicy::FixedQSizePolicy::MinimumQSizePolicy::MaximumQSizePolicy::PreferredQSizePolicy::Expanding

设置组件的间隔:

setSpacing(int)

设置组件的比例因子:

setStretch(int index,int stretch)

使用部分:

//构造函数:
Form::Form(QWidget *parent) :QWidget(parent),btn0(this),btn1(this),btn2(this),ui(new Ui::Form)
{ui->setupUi(this);QVBoxLayout *layout = new QVBoxLayout(this);btn0.setText("Button 0");btn1.setText("Button 1");btn2.setText("Button 2");btn0.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);btn1.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);btn2.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);layout->setSpacing(10);layout->addWidget(&btn0);layout->addWidget(&btn1);layout->addWidget(&btn2);setLayout(layout);
}//头文件:
#ifndef FORM_H
#define FORM_H#include 
#include namespace Ui {
class Form;
}class Form : public QWidget
{Q_OBJECTQPushButton btn0;QPushButton btn1;QPushButton btn2;public:explicit Form(QWidget *parent = 0);~Form();private:Ui::Form *ui;private slots:
};#endif // FORM_H

QHBoxLayout

在这里插入图片描述
他和QVBoxLayout基本一致,在这我就不讲了

使用ui文件添加布局管理器

1、把下列的组件拖出,把组件放在里面
在这里插入图片描述

在这里插入图片描述

2、点击按钮,排序某个Widget
先添加组件
首先选中你要排序的Widget
然后点击下面的东西:

在这里插入图片描述
想要不用也是很简单,选中指定的Widget,点击打破布局。

布局管理器的嵌套

在这里插入图片描述
把QHbox放到QVbox中,组成一个网格布局。
代码如下:

//Widget,h
#ifndef WIDGET_H
#define WIDGET_H#include 
#include namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTQPushButton btn0;QPushButton btn1;QPushButton btn2;QPushButton btn3;public:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;
};#endif // WIDGET_H//Widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include 
#include Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QVBoxLayout *layout = new QVBoxLayout(this);QHBoxLayout *hbox1 = new QHBoxLayout(this);QHBoxLayout *hbox2 = new QHBoxLayout(this);btn0.setText("Button 0");btn1.setText("Button 1");btn2.setText("Button 2");btn3.setText("Button 3");btn0.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);btn1.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);btn2.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);btn3.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);layout->addLayout(hbox1);layout->addLayout(hbox2);hbox1->addWidget(&btn0);hbox1->addWidget(&btn1);hbox2->addWidget(&btn2);hbox2->addWidget(&btn3);setLayout(layout);
}Widget::~Widget()
{delete ui;
}

效果如下:
在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...