QT3与QT4中uic的使用差异---李家凯老师
?1、? QT3
在QT3中,用designer設計好界面后,使用uic來根據界面生成代碼文件,QT3的uic可以自動生成.h和.cpp文件,假設你在制作一個名叫DemoDlg的對話框,生成文件名為DemoDlg.ui的ui文件,那么 QT3的uic生成的文件則是DemoDlg.h和DemoDlg.cpp,具體的命令如下:
# uic ?DemoDlg.ui ???-o ?DemoDlg.h?????
# uic ?DemoDlg.ui ???-i ?DemoDlg.h? -o ?DemoDlg.cpp
所有的界面初始化工作都在cpp文件中執行,控件的定義在h文件的類中聲明,之后程序的邏輯代碼(包括信號與槽的連接)也將加入這個文件,那么對于一個已經完成邏輯功能的對話框來說,如果要修改界面布局,你就不得不重新用uic生成.h和.cpp文件,然后將其中界面相關的代碼復制到你已經修改的文件中,此時決不能直接用uic直接生成到修改過的文件上,因為那樣你的代碼將全部被覆蓋掉。
?
2、QT4
在由ui文件生成h文件方面,QT4改進了,QT4中推薦的方法是,使用uic根據界面文件生成一個h文件,以前面的DemoDlg為例,生成的文件叫做ui_DemoDlg.h,在控制臺執行命令為:
# uic ?DemoDlg.ui ?-o ?ui_DemoDlg.h
ui_DemoDlg.h中會實現一個名為Ui_DemoDlg的類,包含了界面所有控件的加載功能,而程序的邏輯功能依然使用DemoDlg.h和DemoDlg.cpp這兩個功能,并在DemoDlg.h中用多重繼承的方法,從剛才的Ui_DemoDlg類來繼承出實際的DemoDlg類,在DemoDlg的構造函數中,只需要使用setupUi()方法,就可以構建出整個界面,并且由于是從Ui_DemoDlg繼承來的,在邏輯代碼中也可以方便的訪問所有控件,當然Ui_DemoDlg類中控件的權限為public最好了。
由此看來,QT4的方法是個巨大的進步,因為ui_xxx.h中不再包含任何用戶自己寫的代碼了,此時你想更改界面布局的話,只需要用designer修改界面,再用uic生成ui_xxx.h文件,直接替換原文件就可以了。這樣就不會因為界面的改變而迫使你修改xxx.h和xxx.cpp了。
?
------分隔線----------------------------- 上一篇:學習ARM體系結構的意義--李磊老師
- 下一篇:C/C++中堆和棧的區別--李家凱老師
轉載于:https://blog.51cto.com/6966212/1175947
總結
以上是生活随笔為你收集整理的QT3与QT4中uic的使用差异---李家凯老师的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 XHGui 对 PHP 应用进行性
- 下一篇: C++中的 .h 和 .cpp 区别详解