qt - 如何在 QGraphicsLayout 中获取隐藏的 QGraphicsItem 以放弃其空间?

标签 qt

我有一个带有一系列 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/

相关文章:

c++ - 当 QToolTip 应该跟随 QGraphicsItem 上的鼠标时出现奇怪的行为

c++ - 在 QTCreator .pro 文件中使用 QMAKE 链接标志顺序

c++ - 将 QWidget 嵌入到 X11 窗口中

c++ - 加载 url 时 QWebView 崩溃

c++ - 在非 Qt 应用程序 (C++) 中使用 Qt 的信号

c++ - 在 Qt 中如何从另一个文件中的函数访问小部件?

python - PyQt 中遇到 self.close() 后控件不返回

c++ - MinGW的Qt getline错误

c++ - 在 Qt 中为新创建的 Action 设置快捷方式

c++ - C/C++ 中的跨平台自定义文件头