在寫一個測試代碼時,發現無論怎麼設置窗口以及子部件的佈局和大小約束相關的內容,部件的大小就是不能隨窗口縮放自動調整,試了很久,甚至懷疑是運行環境出問題重啓機器都不行,而其他代碼都正常。最後才發現自己範了個低級錯誤,是因爲主窗口在UI設計時是使用的QWidget對象,但在界面派生類內,其父類使用的是QMainWindow而執行代碼語法檢查沒有問題,但運行時出問題了,將其父類修改爲QWidget即解決了問題。
出現這個問題的原因是因爲主程序的代碼圖省事是從其他應用中拷貝的,以前也發生過類似錯誤,不過是因爲UI設計時使用的是QMainWindow,但派生類使用的父類卻是QWidget,這種情況在編譯器檢查時就能發現有些方法不支持能很快發現。