要实现这样的功能,你可以使用Qt中的QStackedWidget(堆叠窗口)来管理多个界面,并在点击按钮时切换当前显示的界面。
首先,在主窗口中创建一个QStackedWidget对象:
QStackedWidget* stackedWidget = new QStackedWidget(this);
然后,创建你需要显示的各个界面,并将它们添加到堆叠窗口中:
QWidget* page1 = new QWidget();
// 添加page1上的控件和布局
QWidget* page2 = new QWidget();
// 添加page2上的控件和布局
stackedWidget->addWidget(page1);
stackedWidget->addWidget(page2);
接下来,在按钮的槽函数中切换页面并设置新页面为不关闭:
void MainWindow::onButtonClicked()
{
// 切换到新页面,并设置不自动删除旧页面
stackedWidget->setCurrentIndex(1);
stackedWidget->setUpdatesEnabled(true);
// 设置旧页面为不可用
page1->setEnabled(false);
}
这样,在点击按钮时会切换到新页面,而旧页面仍保持在堆叠窗口中但变为不可用状态,不能进行交互。当需要关闭新页面并重新激活旧页面时,只需将新页面从堆叠窗口中移除即可。
希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问