以下是一个简单的 Qt QStackWidget 的示例代码:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个窗口和堆栈小部件
QWidget window;
QStackedWidget stackWidget(&window);
// 创建两个小部件以添加到堆栈小部件中
QLabel label1("第一个小部件");
QLabel label2("第二个小部件");
// 将两个小部件添加到堆栈小部件中,并将它们命名为“page1”和“page2”
stackWidget.addWidget(&label1);
stackWidget.addWidget(&label2);
stackWidget.setCurrentIndex(0); // 设置当前索引为第一个小部件
// 创建一个按钮,在点击时切换到下一个小部件
QPushButton button("下一个");
QObject::connect(&button, &QPushButton::clicked, [&](){
int currentIndex = stackWidget.currentIndex();
if (currentIndex == 0) {
stackWidget.setCurrentIndex(1);
} else {
stackWidget.setCurrentIndex(0);
}
});
// 布局窗口和小部件
QVBoxLayout layout(&window);
layout.addWidget(&stackWidget);
layout.addWidget(&button);
// 显示窗口并进入主循环
window.show();
return app.exec();
}
这个示例创建了一个带有两个标签小部件的 QStackedWidget。当用户单击“下一个”按钮时,它会切换到下一个小部件。布局由垂直布局管理器处理,其中 QStackedWidget 和 QPushButton 沿垂直轴方向堆叠。