微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 QWidget 上设置最小尺寸会触发对内容的调整

如何解决在 QWidget 上设置最小尺寸会触发对内容的调整

我试图弄清楚为什么以及如何在设置 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.
    }
}

知道如何在不设置最小尺寸的情况下防止调整内容大小或恢复调整大小功能吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。