我有一个带有一系列 QGraphicsWidgets 的 QGraphicsLinearLayout。我可以很好地隐藏小部件,但布局将所有剩余的小部件隔开,就好像隐藏的小部件仍然可见一样。我怎样才能让布局使用这个空间?
我的代码是这样的:
//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/