我有一个QGraphicsLinearLayout,其中包含一系列QGraphicsWidgets。我可以很好地隐藏小部件,但是布局会将所有其余小部件隔开,好像隐藏的小部件仍然可见。如何获得使用该空间的布局?

我的代码是这样的:

//scene is a QGraphicsScene*, myWidget# inherits QGraphicsWidget
scene->addItem(myWidget1);
layout->addItem(myWidget1);
scene->addItem(myWidget2);
layout->addItem(myWidget2)
scene->addItem(myWidget3);
layout->addItem(myWidget3)

//then later, I call
myWidget2->hide();

但是,尽管myWidget2现在是不可见的,但布局仍然像在那儿一样被隔开。我该如何改变?

谢谢。

最佳答案

隐藏小部件后,尝试调用QGraphicsLinearLayout::invalidate()清除所有缓存的几何信息。如果那没有帮助,我认为应该从布局中删除小部件(如果您可行)。

关于qt - 如何在QGraphicsLayout中获取隐藏的QGraphicsItem来放弃其空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13956087/

10-11 18:45