QStackedLayout可以管理MainWindow嗎
时间: 2024-04-10 14:27:21 浏览: 11
是的,可以使用QStackedLayout来管理MainWindow中的控。下面是一个示例代码片段,演示如何在MainWindow中使用QStackedLayout:
```
#include <QMainWindow>
#include <QStackedLayout>
#include <QPushButton>
#include <QLabel>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
QStackedLayout *stackedLayout = new QStackedLayout;
QWidget *widget1 = new QWidget;
QPushButton *button1 = new QPushButton("Button 1", widget1);
stackedLayout->addWidget(widget1);
QWidget *widget2 = new QWidget;
QLabel *label2 = new QLabel("Label 2", widget2);
stackedLayout->addWidget(widget2);
stackedLayout->setCurrentWidget(widget1);
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(stackedLayout);
setCentralWidget(centralWidget);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
在这个示例中,MainWindow继承自QMainWindow,并在构造函数中创建了一个QStackedLayout对象。然后,创建了两个QWidget控件(widget1和widget2),并将它们添加到QStackedLayout中。通过调用setCurrentWidget()函数,我们设置默认显示的控件为widget1。最后,我们将QStackedLayout设置为MainWindow的中央窗口部件(central widget)。
希望这个示例能够帮助你在MainWindow中使用QStackedLayout!