在 Qt 中,使用 hide() 或 setVisible(false) 时,如何阻止子网格布局尝试将所有内容居中?

vc6*_*669 3 c++ user-interface qt

我真正想做的是告诉它在调用 setVisible(true) 或 setVisible(false) 时不要移动东西。我怎样才能做到这一点?

pep*_*ppe 5

使用QSizePolicy::setRetainSizeWhenHidden

void QSizePolicy::setRetainSizeWhenHidden(bool keepSize)

设置布局在隐藏时是否应保留小部件的大小。如果retainSize为true,隐藏小部件不会改变布局。

换句话说:

QSizePolicy p = widget->sizePolicy();
p.setRetainSizeWhenHidden(true);
widget->setSizePolicy(p);
Run Code Online (Sandbox Code Playgroud)