Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Qt中,当使用hide()或setVisible(false)时,如何阻止子网格布局尝试将所有内容居中?_C++_Qt_User Interface - Fatal编程技术网

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

C++ 在Qt中,当使用hide()或setVisible(false)时,如何阻止子网格布局尝试将所有内容居中?,c++,qt,user-interface,C++,Qt,User Interface,我真正想做的是告诉它在调用setVisible(true)或setVisible(false)时不要移动东西。我如何才能做到这一点?使用: void QSizePolicy::setRetainSizeWhenHidden(bool retainSize) 设置布局在隐藏时是否应保留小部件的大小。如果retainSize为true,则不会通过隐藏小部件来更改布局 换言之: QSizePolicy p = widget->sizePolicy(); p.setRetainSizeWhenHi

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

使用:

void QSizePolicy::setRetainSizeWhenHidden(bool retainSize)

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

换言之:

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

Qt论坛可能是回答这个问题的更好的地方。@ThomasMatthews:为什么这么做不好?@peppe:我没说这么做不好。我说Qt论坛可能是一个更好的地方。他们会是一个更好的地方,因为这个问题更多的是关于Qt的细节,论坛上有更多的Qt专家。这与我的问题完全一致。非常感谢。具体来说,我已经设置了gridLayout,但是当我尝试执行gridLayout->sizePolicy()时,它告诉我gridLayout没有任何同名的成员。有sizeHint()和sizeConstraint(),但没有sizePolicy()。我做错了什么?在你放在网格布局中的小部件(即你想要隐藏的小部件和你想要保留的空间)上调用这个。还是我误解了这个问题?右侧是当所有东西都可见时,左侧是用hide()隐藏的。我希望标签保持位置,而不是像那样四处移动。我尝试了你在所有标签和旋转框上所说的,但这就是结果。另外,所有标签和旋转框都在gridLayout中。[更新]无论出于何种原因,当我使用代码进行操作时,它拒绝工作,我在Qt Creator中对标签和旋转框执行了完全相同的操作,现在一切正常。非常感谢。