如何防止QSplitter完全隐藏子窗口部件?

5
我有一个水平的QSplitter,包含两个子QWidget对象。当用户将分隔手柄向右拖动超过一定阈值时(我假设这取决于子控件的最小大小),右侧的QWidget会突然消失。使用setSizePolicysetMinimumSize都没有帮助。
此外,hideEvent也不会被触发,我甚至无法检测到我的小部件何时被隐藏。我尝试使用resizeEvent,但是它的旧宽度参数和新宽度参数似乎具有未记录的奇怪值--有时为0,有时为-1。即使有系统,它也可能会在下一个Qt版本中更改。
理想情况下,我想完全关闭这种消失行为。作为妥协,我会感激您提供一个检测它的方法。
1个回答

8
如果您想要防止特定的小部件(widget)折叠,则需要...
int index = my_splitter.indexOf(widget);
my_splitter.setCollapsible(index, false);

Documentation is here.


哈!你是正确的——他们称之为“折叠”,而不是“隐藏”。解决了我的当前问题,谢谢。出于好奇,是否有一种方法可以在发生此折叠事件后检测它? - sigil
(_在它发生后有没有一种方法来检测这个折叠事件?_)如果您在要检测其折叠的小部件上安装事件过滤器,您将会注意到触发了一个QInputMethodQueryEvent - Mihoub Abderrahmene Rayene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接