Qt QMainWindow中央小部件删除

时间:2012-02-13 20:29:55

标签: c++ qt

我的应用程序要求用户在多个屏幕之间切换。我这样做的方法是为每个屏幕创建不同的QFrame,然后将Qframe设置为MainWindow上的中央小部件。问题是,每次调用setCentralWidget(frame)时,旧框架都会被删除,我以后无法访问它。如何保存旧框架以便以后可以访问它?

如果我的问题不清楚,请告诉我。

3 个答案:

答案 0 :(得分:9)

您可以从QMainWidow重新删除中央窗口小部件。然后,您可以设置新的centralWidget;

QWidget* savedWidget = mainWnd->centralWidget();
savedWidget->setParent(0);//now it is saved
mainWnd->setCentralWidget(newWidget);

同样使用QStackedWidget可能是更好的解决方案。

答案 1 :(得分:4)

QStackedWidget是解决此问题的优雅解决方案,您可以了解如何正确使用它{。{3}}。

答案 2 :(得分:0)

您可以在相应的子窗口小部件上使用.hide()/。show()来完成此操作。但对于您的案例,更好的解决方案几乎肯定是使用QTabWidgetQStackedWidget