1. 程式人生 > >QT Creator 使用 design 修改 ui介面編譯後介面未更新問題的解決 From EricQu

QT Creator 使用 design 修改 ui介面編譯後介面未更新問題的解決 From EricQu

轉載於:http://blog.csdn.net/cokewei/article/details/6639960

今日遇到一個奇怪的問題,描述如題。

網上搜索了一些解決方案,說的不是很清楚,經過一些時間的摸索,這裡總結一下解決方法。

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後就規定了位置於是不會出錯了。