繁体   English   中英

Qt QWidget :: minimumSizeHint延迟(#2)

[英]Qt QWidget::minimumSizeHint delay (#2)

当我在应用程序中隐藏窗口小部件时, minimumSizeHint不会立即更新。

我试过QLayout::activate()的解决方案,在提出这个职位 ,但它不适合我,因为QLayout::activate()返回false

我尝试在MainWindow类上这样做:

ui.groupBox->setVisible(!ui.groupBox->isVisible());

qDebug() << this->layout()->activate();

qDebug() << this->minimumSizeHint();

this->resize(this->minimumSizeHint());

任何想法为什么它不起作用?

我当前的解决方法是:

QTimer::singleShot(10, this, SLOT(on_resizeMin()));

但我注意到10ms在慢速系统上可能还不够。 讨厌的解决方法。

尺寸提示应在布局系统的适当时候使用。 您不应该在其他地方使用它们-这就是为什么它们似乎“不起作用”的原因。

您似乎想将主窗口小部件(窗口)的大小限制为大小提示之一。 您需要在该小部件的布局上设置适当的sizeConstraint 有两种方法:

  1. 使用QLayout::SetFixedSize约束。 重新实现布局的sizeHint以返回minimumSize ,这样QLayout::SetFixedSize会将窗口的大小设置为最小大小提示,而不是默认大小提示。

  2. 修补Qt以实现QLayout::SetMinAndMaxToMinSize ,这意味着“将主窗口小部件的最小最大大小设置为minimumSize()

    补丁很小:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM