如何設置QMainWindow的frameSize?QMainWindow set frameSize
爲了解釋我在做什麼,我需要滿足的要求是我的程序主窗口的高度等於屏幕高度減去任務欄;但寬度應該比現代寬屏幕顯示器的屏幕寬度小得多,所以我不能只是最大化窗口。
我可以找到屏幕高度減去任務欄沒有問題QApplication::desktop()->availableGeometry()
。然而,使用此值在窗口上調用resize
不起作用;據我所知,resize
使內部佔據一定的空間,而不是使外部適合一定的空間。該文檔似乎建議相關窗口屬性爲frameSize
,但不提供設置它的直接方式。我可以在resize
和frameSize
之間做一些試驗和錯誤的反饋,但是有沒有更優雅/習慣的方法來做到這一點?
對,棘手的部分是frameGeometry沒有設置,直到第一次顯示窗口(顯然這不是API缺陷,Qt只是事先不知道,因爲窗口框架是由主機繪製的操作系統)。解決方法解決方案:首次運行程序時,將窗口顯示爲一個小框,等待與服務器連接(從用戶的角度來看是自然跳轉),然後調整屏幕高度。然後保存生成的窗口幾何圖形以供後續運行。 – rwallace 2011-02-06 00:04:15