呃…
我不曉得我有沒有誤解原po的問題所在…
原po的問題,在我的解讀是,
「如果用 QT Designer 設計產生了一個 xxx.ui 檔,在 QT 3 下,可以使用 "uic -o xxx.h xxx.ui" 及 "uic -i xxx.h -o xxx.cpp xxx.ui"等指令,透過 uic 產生出 .h 及 .cpp 等檔案。但是 QT 4 的 uic 似乎不行,請問在 QT 4 底下如何在只有 .ui 檔的情形下產生出 .h 及 .cpp 等檔案?」
我有試過這個範例,按照您提供的方法確實是可行的。但是我覺得原po的情形是:
「如果只有一個 .ui 檔,要怎麼產生出 .h 及 .cpp 甚至是 compile 出最後的執行檔?」
如果將範例程式刪除到只剩一個 .ui 檔,那麼,"qmake calculatorform.pro" 是行不通的;如果手動新增 calculatorform.pro 檔,內容也寫的正確無誤,也就是在有了 .ui 檔與 .pro 檔的情形下,使用您所提的兩個指令,似乎也產生不出 .h 及 .cpp 檔?
下面分享一個簡易的方法,來模擬用 QT Designer 設計出一個 .ui 之後,如何以最少的手動 coding ,完成一個簡易的 QT Application。(以下假設所有相關環境變數及所需工具程式均設定及安裝完成)
1. 使用 QT Designer 設計一個 Dialog(其他的亦可,這裡只是舉例說明),存到 D:\MyQTDialog\MyQTDialog.ui
2. 使用 command prompt ,切換到 D:\MyQTDialog 底下,以 "uic -o MyQTDialog.h MyQTDialog.ui" 產生 MyQTDialog.h。
3. 參考
http://doc.trolltech.com/4.0/porting4-designer.html 中 "There are two ways to create an instance of our form..."這一段,這裡使用第一種方法,新增了 main.cpp ,將 main function 寫在其中。
4. 如果有與 QT 4 整合的 IDE 的話,此時應該可以直接編譯並產生出執行檔了。若無,則可參以下。同樣在 D:\MyQTDialog 底下,以 "qmake -project" 產生 MyQTDialog.pro 檔案。
5. 使用 "qmake MyQTDialog.pro" 產生相關的 Makefile。
6. "make"
7. 大公告成
以上是一點小小心得分享!若有錯誤請指正!(Windows XP Pro SP2 + QT 4)