如何防止 QSplitter 完全隐藏 child 小部件?

How do I prevent QSplitter from hiding child widgets completely?

我有一个水平 QSplitter 和两个 child QWidget objects。现在,当用户将拆分器手柄向右拖动超过某个阈值(我假设这取决于 child 的最小尺寸)时,右侧的 QWidget 会突然消失。 setSizePolicy, setMinimumSize 没有帮助。

此外,hideEvent 没有被触发,我什至无法检测到我的小部件何时被隐藏。我尝试使用 resizeEvent,但它的旧宽度参数和新宽度参数似乎都有未记录的奇怪值——有时是 0,有时是 -1。即使它有一个系统,它也可以随着下一个 Qt 版本而改变。

理想情况下,我想完全关闭这种消失的行为。作为妥协,我将不胜感激如何检测它的想法。

如果你想防止某个widget崩溃那么你需要...

int index = my_splitter.indexOf(widget);
my_splitter.setCollapsible(index, false);

文档是 here