[英]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
。 有两种方法:
使用QLayout::SetFixedSize
约束。 重新实现布局的sizeHint
以返回minimumSize
,这样QLayout::SetFixedSize
会将窗口的大小设置为最小大小提示,而不是默认大小提示。
修补Qt以实现QLayout::SetMinAndMaxToMinSize
,这意味着“将主窗口小部件的最小和最大大小设置为minimumSize()
”
补丁很小:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.