[英]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.