qt creator利用QStackedLayout,在同一個區域內放置三個窗口部件,區域上方創建3個控件按鈕,通過3個按鈕進行切換
时间: 2024-02-20 09:56:04 浏览: 148
基于Qt的多窗切换
4星 · 用户满意度95%
好的,我来解答你的问题。首先,你需要在Qt Creator中创建一个QWidget类的项目,然后在该类中创建三个QWidget窗口部件,然后将它们添加到QStackedLayout中。代码示例如下:
```cpp
// 创建QWidget对象
QWidget *widget1 = new QWidget;
QWidget *widget2 = new QWidget;
QWidget *widget3 = new QWidget;
// 创建QStackedLayout对象
QStackedLayout *stackedLayout = new QStackedLayout;
// 将QWidget对象添加到QStackedLayout中
stackedLayout->addWidget(widget1);
stackedLayout->addWidget(widget2);
stackedLayout->addWidget(widget3);
// 设置QWidget对象的Layout为QStackedLayout
QWidget *centralWidget = new QWidget;
centralWidget->setLayout(stackedLayout);
setCentralWidget(centralWidget);
```
然后,在窗口的上方创建三个控件按钮,每个按钮都与QStackedLayout中的一个QWidget部件相关联。代码示例如下:
```cpp
// 创建3个QPushButton按钮
QPushButton *button1 = new QPushButton("Button 1");
QPushButton *button2 = new QPushButton("Button 2");
QPushButton *button3 = new QPushButton("Button 3");
// 为每个按钮连接一个槽函数
connect(button1, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(0);
});
connect(button2, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(1);
});
connect(button3, &QPushButton::clicked, [=]() {
stackedLayout->setCurrentIndex(2);
});
// 将3个QPushButton按钮添加到窗口的上方
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(button1);
buttonLayout->addWidget(button2);
buttonLayout->addWidget(button3);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(buttonLayout);
mainLayout->addWidget(centralWidget);
QWidget *window = new QWidget;
window->setLayout(mainLayout);
setCentralWidget(window);
```
这样,你就可以通过三个按钮来切换QStackedLayout中的三个QWidget窗口部件了。希望能够帮助到你。
阅读全文