QVBoxLayout 与 QHBoxLayou
时间: 2024-04-23 12:28:28 浏览: 82
QVBoxLayout和QHBoxLayout是Qt中的两个常用的布局管理器。它们用于在窗口或其他容器中管理和排列子部件(QWidget)。
QVBoxLayout是一个垂直布局管理器,它按照从上到下的顺序依次排列子部件。而QHBoxLayout是一个水平布局管理器,它按照从左到右的顺序依次排列子部件。
下面是使用QVBoxLayout和QHBoxLayout的示例代码:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
QWidget window;
QVBoxLayout* vLayout = new QVBoxLayout(&window); // 创建垂直布局管理器
QPushButton* btn1 = new QPushButton("Button 1");
QPushButton* btn2 = new QPushButton("Button 2");
QPushButton* btn3 = new QPushButton("Button 3");
vLayout->addWidget(btn1); // 将按钮1添加到垂直布局管理器中
vLayout->addWidget(btn2); // 将按钮2添加到垂直布局管理器中
vLayout->addWidget(btn3); // 将按钮3添加到垂直布局管理器中
QHBoxLayout* hLayout = new QHBoxLayout;
QPushButton* btn4 = new QPushButton("Button 4");
QPushButton* btn5 = new QPushButton("Button 5");
QPushButton* btn6 = new QPushButton("Button 6");
hLayout->addWidget(btn4); // 将按钮4添加到水平布局管理器中
hLayout->addWidget(btn5); // 将按钮5添加到水平布局管理器中
hLayout->addWidget(btn6); // 将按钮6添加到水平布局管理器中
vLayout->addLayout(hLayout); // 将水平布局管理器添加到垂直布局管理器中
window.setLayout(vLayout); // 将垂直布局管理器设置为窗口的布局管理器
window.show();
return app.exec();
}
```
在这个示例中,我们创建了一个QWidget窗口,并在窗口上使用了一个垂直布局管理器 QVBoxLayout。然后,我们创建了三个QPushButton按钮,并使用addWidget方法将它们添加到垂直布局管理器中。
接下来,我们创建了一个水平布局管理器 QHBoxLayout,并在其中添加了三个QPushButton按钮。然后,我们使用addLayout方法将水平布局管理器添加到垂直布局管理器中。
最后,我们将垂直布局管理器设置为窗口的布局管理器,并显示窗口。
这样,按钮1、按钮2和按钮3会垂直排列,而按钮4、按钮5和按钮6会水平排列。你可以根据需要调整和扩展布局。
阅读全文