前面的文章中舉了乙個用qt designer作qt程式介面設計的例子,但使用uic轉出來的標頭檔案**比較凌亂,看起來太累,如果做的是稍複雜一點的介面程式,放一段時間自己再來看,怕是要花不少時間,最好是對這個標頭檔案做一些優化。下面以上篇文章的例子來說明一下如何優化。
首先看看main.cpp中呼叫標頭檔案中設計好的視窗的過程:
qwidget w;
ui::form ui;
ui.setupui(&w);
ui.show();
在這當中,ui通過檢視form.h可以得知是建立的命名空間,form是從ui_form生成的類,setupui是介面的初始化函式。這段**中定義了乙個qwidget物件,將其傳遞到ui_form中使用setup_ui對其進行介面初始化。
那麼,我們可以做這樣的修改,直接定義乙個qwidget派生的子類,它的初始化過程與setup_ui一致,於是,form.h可以修改為如下:
#ifndef form_h
#define form_h
class ui_form:public qwidget
;#endif
這裡定義了乙個ui_form類,原來的ui命名空間去掉了,ui_form是從qwidget派生出來的,可以直接在定義後使用show函式使其顯示,main.cpp就可以更改為
可以看出來,這其中的ui_form()是實現ui_form類的建構函式,它的**與原來的setup_ui()幾乎一致,區別在於用this代替了setup_ui()中作為引數傳遞進來的form,另外將setup_ui()中被呼叫的retranslateui()函式合併過來了。
做完這些修改後,儲存,編譯,執行,與直接原來使用uic生成的標頭檔案的程式完全一樣,但其**更容易看明白。
QT5 Designer 打不開的問題及解決方法
designer.exe 無法開啟背景 python 3.8 按照pip install pyqt5和pip install pyqt5 tools完成安裝後,進入.python libtkomfsite packages pyqt5 tools qt bin 目錄開啟designer.exe報錯如...
Qt4中ui檔案生成vcproj
製作ui檔案 先應該用qt designer繪製乙個自己的介面,並存為myform.ui 這裡的myform可以用自己喜歡的名字代替 在製作自己的介面檔案時要注意以下幾個要點 1 要記住ui檔案的名字,因為uic生成的 會存在ui myform.h裡 2 要記住主窗體的object name,因為u...
Qt呼叫VS生成的dll
預備知識 1 如果在沒有導入庫檔案 lib 而只有標頭檔案 h 與動態鏈結庫 dll 時,我們才需要顯示呼叫,如果這三個檔案都全的話,我們就可以使用簡單方便的隱式呼叫。2 通常windows下程式顯示呼叫dll的步驟分為三步 三個函式 loadlibrary getprocadress freeli...