qt creator 利用QStackedLayout在Qwidget Q1上創建三個可切換的窗口,窗口大小和Qwidget Q1一致的代碼
时间: 2024-02-21 15:56:37 浏览: 101
以下是在Qt Creator中利用QStackedLayout在Qwidget Q1上创建三个可切换的窗口的示例代码:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建Qwidget Q1作为主窗口
QWidget *q1 = new QWidget;
q1->setWindowTitle("Q1 Window");
q1->setFixedSize(400, 300);
// 创建QStackedLayout布局管理器
QStackedLayout *stackedLayout = new QStackedLayout(q1);
// 创建三个QWidget并添加到QStackedLayout中
QWidget *widget1 = new QWidget;
widget1->setFixedSize(400, 300);
widget1->setStyleSheet("background-color: red;");
stackedLayout->addWidget(widget1);
QWidget *widget2 = new QWidget;
widget2->setFixedSize(400, 300);
widget2->setStyleSheet("background-color: green;");
stackedLayout->addWidget(widget2);
QWidget *widget3 = new QWidget;
widget3->setFixedSize(400, 300);
widget3->setStyleSheet("background-color: blue;");
stackedLayout->addWidget(widget3);
// 创建QPushButton并在其槽函数中切换QWidget
QPushButton *button1 = new QPushButton("Switch to Widget 1");
QPushButton *button2 = new QPushButton("Switch to Widget 2");
QPushButton *button3 = new QPushButton("Switch to Widget 3");
QObject::connect(button1, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(0);
});
QObject::connect(button2, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(1);
});
QObject::connect(button3, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(2);
});
// 创建QVBoxLayout并添加QPushButton
QVBoxLayout *layout = new QVBoxLayout(q1);
layout->addWidget(button1);
layout->addWidget(button2);
layout->addWidget(button3);
layout->addStretch();
stackedLayout->setContentsMargins(0, 0, 0, 0);
q1->setLayout(stackedLayout);
// 显示主窗口
q1->show();
return app.exec();
}
```
这个示例代码中,我们创建了一个Qwidget Q1作为主窗口,并在其上创建了一个QStackedLayout布局管理器和三个QWidget,然后使用QPushButton切换QWidget。每个QWidget的大小与Qwidget Q1相同,都是固定的400x300像素。你可以通过修改QWidget的大小来调整窗口的大小。
阅读全文