QT3與QT4中uic的使用差異

2021-05-23 19:44:07 字數 1039 閱讀 2333

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_***.h中不再包含任何使用者自己寫的**了,此時你想更改介面布局的話,只需要用designer修改介面,再用uic生成ui_***.h檔案,直接替換原檔案就可以了。這樣就不會因為介面的改變而迫使你修改***.h和***.cpp了。

QT學習3 QT4中呼叫QT3的原有類

define qt3 support 應用程式的廣泛資源,比如預設字型和游標 include 經典的圖形使用者介面按鈕,qwidget,可以顯示一段文字或qpixmap include qt中的字型 include 布局類,qvbox把它的子視窗排成垂直的行,qvbox是qt3的,要使用它 必須在建...

QT中 uic 工具的使用

使用qt設計師設計的視窗部件,用uic 工具可以轉換成c 1 首先用qt設計師設計乙個視窗,選擇乙個英文目錄下,儲存為gotocelldialog.ui 我的檔案儲存在 f qt program gotocell 2 在該目錄下建立乙個 main.cpp 檔案,內容如下 int main int a...

Qt3和Qt4版本差異帶來的問題和解決方法

qt3和qt4兩個版本存在很大的差異,這也給我們使用帶來了很大的挑戰。下面我結合一下我在實際程式設計過程中遇到的問題來總結一下如何更好的使用qt3和qt4兩個版本來進行程式設計。qt的版本不斷更新,現在最新的版本是4.6。1.首先是系統平台的差異。在win下,qt3的 已經很少能見到了,而且noki...