qt中利用QVBoxLayout垂直布局四个widget框在QMainWindow里,每个widget框添加上背景色
时间: 2024-04-15 10:31:43 浏览: 296
Qt 垂直布局 (QVBoxLayout)
在Qt中,可以使用QVBoxLayout来实现垂直布局,并为每个widget框添加背景色。下面是一个示例代码:
```cpp
#include <QMainWindow>
#include <QWidget>
#include <QVBoxLayout>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建主窗口中的widget
QWidget *mainWidget = new QWidget(this);
// 创建垂直布局管理器
QVBoxLayout *layout = new QVBoxLayout(mainWidget);
// 创建四个widget框,并设置背景色
QWidget *widget1 = new QWidget(mainWidget);
widget1->setStyleSheet("background-color: red;");
layout->addWidget(widget1);
QWidget *widget2 = new QWidget(mainWidget);
widget2->setStyleSheet("background-color: green;");
layout->addWidget(widget2);
QWidget *widget3 = new QWidget(mainWidget);
widget3->setStyleSheet("background-color: blue;");
layout->addWidget(widget3);
QWidget *widget4 = new QWidget(mainWidget);
widget4->setStyleSheet("background-color: yellow;");
layout->addWidget(widget4);
// 将主窗口设置为该布局
setCentralWidget(mainWidget);
}
};
#include "mainwindow.moc"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个示例中,我们创建了一个QMainWindow的子类MainWindow,并在其中创建了一个主窗口的widget。然后,我们使用QVBoxLayout来管理这个widget的布局,将四个子widget添加到垂直布局中。通过调用setStyleSheet()函数,我们为每个子widget设置了不同的背景色。
最后,我们将主窗口的central widget设置为这个布局管理器所管理的widget,以实现垂直布局效果。
阅读全文