gpt4 book ai didi

qt - 如何在不改变其他 Qt 小部件的位置的情况下使 Qt 小部件不可见?

转载 作者:行者123 更新时间:2023-12-03 07:23:38 32 4
gpt4 key购买 nike

我有一个充满 QPushButtons 和 QLabels 以及各种其他有趣的 QWidget 的窗口,所有这些都使用各种 QLayout 对象动态布局...而我想做的是偶尔制作一些这些小部件变得不可见。也就是说,不可见的小部件仍然会占用窗口布局中的正常空间,但它们不会被渲染:相反,用户只会在小部件的矩形/区域中看到窗口的背景颜色。

hide() 和/或 setVisible(false) 不会起作用,因为它们会导致小部件完全从布局中删除,从而允许其他小部件扩展以占用“新可用”空间;我想避免的效果。

我想我可以为每个覆盖paintEvent()(和mousePressEvent()等)的QWidget类型创建一个子类无操作(在适当的时候),但我更喜欢一个不需要我创建三打不同的 QWidget 子类的解决方案。

最佳答案

这个问题在 Qt 5.2 中得到了解决。可爱的解决方案是:

QSizePolicy sp_retain = widget->sizePolicy();
sp_retain.setRetainSizeWhenHidden(true);
widget->setSizePolicy(sp_retain);

http://doc.qt.io/qt-5/qsizepolicy.html#setRetainSizeWhenHidden

关于qt - 如何在不改变其他 Qt 小部件的位置的情况下使 Qt 小部件不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794532/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com