我的應用程序的主窗口是一個QGidget,它帶有一個包含QStatusBar的其他幾個小部件的QGridLayout。QStatusBar :: showMessage()調用的大小調整
我跟着Qt文檔http://doc.qt.io/qt-4.8/qstatusbar.html,讓自己的狀態欄能夠顯示:
- 「正常消息」(即:「準備好了」),通過添加一個QLabel到狀態欄的方式使用
QStatusBar::addWidget()
。 - 通過調用
QStatusBar::showMessage()
臨時消息(即暫時隱藏「正常消息」)。
我的問題是,當一個臨時消息顯示或清除狀態欄,然後它顯然觸發QLayout::activate()
(在我的主窗口的佈局)。這反過來可能會激起我的窗口中的其他小部件的大小調整,並且我做而不是希望這種情況發生。
好奇(討厭)的事情是,狀態欄實際上沒有調整大小(因爲它應該,它不需要調整大小),所以我不知道爲什麼QStatusBar::showMessage()
會要求佈局調整任何東西。
任何人都知道這個解決方案?提前致謝!
上清除關閉消息後,以適應其內容這僅僅是一個在黑暗中拍攝,但狀態欄。() - > setSizePolicy (QSizePolicy :: Ignored,QSizePolicy :: Fixed);可能會阻止狀態欄嘗試過多地混淆您的佈局。 –
我剛剛嘗試過你的建議,不幸的是它仍然是一樣的:( – Seub
)如果'QLayout :: activate()'導致其他事情調整大小,儘管所有的小部件大小應該是相同的,但是有一些可怕的錯誤。在任何佈局上都可以調用'activate()',而不會產生任何影響,只要一切都正確。是否使用了任何自定義小部件?請生成一個最小的自包含單文件測試用例 –