ui源文件到界面顯示的原理可以網上搜索,這里不再描述。簡單講就是先要從*.ui生成ui_*.h然后再編譯,所以界面未更新實際上是因為ui_*.h這個文件沒有更新導致的。
出現此問題后我嘗試了以下幾個方法:
1,在生成目標的文件夾內找到ui_*.h,復制到源代碼文件夾內覆蓋原來文件,成功
2,刪除源代碼文件夾內ui_*.h后,clear all 然后再重新編譯,失敗。
3,uic *.ui -o ui_*.h 失敗,生成的ui_*.h是空的
根治的方法:
項目設置文件.pro內增加 UI_DIR=./UI,同時刪除掉源代碼目錄中ui_*.h,clear all,->qmake->rebuilt all
總結:導致ui_*.h文件沒有更新的原因是源代碼中#include ui_*.h的位置和實際生成的位置不同,引用的是老的ui_*.h,設置UI_DIR后就規定了位置於是不會出錯了。
