c – 在Qt中将一个小部件与另一个小部件交换

在现有视图中将一个QGraphicsWidget与另一个QGraphicsWidget“交换”的最佳方法是什么?我有一个树视图小部件和一个标签小部件,我希望它们在不同的时间占用相同的空间.具体来说,当出现错误时,我想在标签中显示它,当没有错误时,我想显示树.

我已尝试以编程方式隐藏一个并使用hide()和show()显示另一个,但问题是隐藏的小部件占用了我的QGraphicsLinearLayout中的空间,即使它被隐藏,留下空白.或者,我想我可以添加和删除布局中的小部件,但这似乎很苛刻,因为它意味着小部件的所有权发生变化,我需要在布局中记录它们的位置,以便我可以将它们插入正确的地方.

Java Swing中,我使用CardLayout来实现这一点,但我没有看到Qt中的等价物.

更新:我发现了QStackedWidget.但是,我正在使用QGraphicsScene,因此我的小部件不会继承QWidget而是QGraphicsWidget,因此我无法将它们添加到QStackedWidget中.

最佳答案
QStackedWidget怎么样?

The QStackedWidget class provides a stack of widgets where only one widget is visible at a time.

转载注明原文:c – 在Qt中将一个小部件与另一个小部件交换 - 代码日志