我试图弄清楚在设置 minimumSize 时为什么以及如何防止 QDockWidget 调整为内容。
我的 QDockWidget 里面有一些其他小部件,有时需要折叠它们,基本上使它们不可见。设置可见性有效,但缺点是所有快捷方式都被禁用,这是一个问题。现在我在折叠和重置大小时将固定大小设置为 0,在展开时设置最小和最大大小。首先,我试图仅重置大小和最大大小,但后来我注意到我无法再调整小部件的大小了。当我设置最小尺寸时,可以再次调整大小,但是小部件会根据内容调整大小,并且基本上会忽略折叠前存储的大小。
void AnnotationDockWidget::setCollapsed(bool isCollapsed)
{
if (isCollapsed) {
mSizeBeforeCollapse = size();
setFixedSize(0, 0);
} else {
setFixedSize(mSizeBeforeCollapse);
setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
setMinimumSize(0, 0); // Doing this resizes the widget to its content and the mSizeBeforeCollapse is ignored.
// Without this line everything has correct size but I cannot resize the widgets.
}
}
知道如何在不设置最小大小的情况下防止调整内容大小或恢复调整大小功能吗?