Qt4中ui檔案的使用方法

2021-05-25 10:09:08 字數 2484 閱讀 1779

ui檔案的使用是在qt4中不太容易上手的一點,因為很多同學都是從qt3公升級到qt4的,在公升級過程中發現這部分的變化非常之大,讓人有點無所適從。 qt3的designer簡直可以媲美乙個ide,可以編輯**,可以管理工程, 可是到了qt4卻彷彿是退化到了史前一萬年,我們又來到那個茹毛飲血的蠻荒時代,工程管理的功能被徹底剔除到designer以外。

trolltech這樣做也是有道理的,在他們的qt4 what』s new裡就闡述了他們的觀點,designer被清晰地定義為介面設計工具,只負責介面設計這個單純的功能。(估計這也是在為後來的creator發布做鋪墊,所有你需要的工程管理的功能都放在這個新工具裡實現了。)

首先應該用qt designer繪製乙個自己的介面,並存為myform.ui(這裡的myform可以用自己喜歡的名字代替)。

在製作自己的介面檔案時要注意以下幾個要點:

1、要記住ui檔案的名字,因為uic生成的**會存在ui_myform.h裡

2、要記住主窗體的object name, 因為ui檔案提供的類名將以這個form的名字來命名

3、要特別注意你的form選擇的基類要和你**中的窗體類相容

4、要記得給每個後面需要訪問到的控制項起乙個有意義並且好記的object name, 因為ui檔案提供的控制項將以這些object name來命名

清楚了以上幾點,在**中使用你的ui檔案就會變得非常簡單。

這一步最簡單,只需要修改pro檔案,加入forms+=myform.ui

qmake -project命令也可以識別字尾名為ui的檔案,並將之加入工程。

官方介紹的使用ui檔案的方法有三種,乙個是直接引用,二是單繼承,三是多繼承。 第一種方法其實很不實用,大家去看一下文件中的例子就可以了;第二種和第三種沒有本質的差別,可以並作一類,這裡做重點介紹。

ui檔案最終會被翻譯成標準的c++**,並存入乙個.h檔案中,這個過程在呼叫make之後才進行,所以初始情況下你是看不到這個ui_myform.h檔案的,只有經過了make過程該標頭檔案才生成。不過沒關係,沒有這個檔案我們照樣能寫出正確的**。

單繼承方式簡單來說就是在**中首先要自定義乙個子類(後文稱為myform),該類要從form對應的窗體類(或其相容的子類)派生;並用ui生成的類定義乙個類裡的成員變數(後文成文myui)。這樣在myform的建構函式中可以直接呼叫myui和myui中的變數和函式,使用起來很方便。 舉例說明, 比如這裡有乙個ui檔案叫myform.ui, ui檔案裡定義的窗體名字為bigwidget,上面擺放了乙個單行編輯控制項叫lineeditname:

————————————-

#include 「ui_myform.h」

class myform: public qwidget

private:

ui::bigwidget myui;

private:

void my_function();

};————————————-

上面這段簡單的類的宣告是前文所述前三點要點的最佳例證,請對照要點的文字描述和具體的**體會其中的含義。這裡還有一點比較有意思的地方,就是ui檔案提供的類被包含在了名為ui的name space裡,這樣做的目的是將ui檔案的命名空間與使用者的**分離,避免兩者出現命名衝突的情況。相應的,我們寫**的時候也要注意在使用ui檔案中的類時要用「ui::」的方式進行引用。

再來看cpp檔案

————————————–

#include

#include 「myform.h」

void my_function(void)

————————————–

這裡隨便寫了乙個函式,為了說明如何在窗體類裡呼叫ui檔案中定義的控制項。這段**非常簡單,就不多作說明了。

有了單繼承的基礎,學習多繼承是小菜一碟。來段**看一下就明白了。

————————————-

#include 「ui_myform.h」

class myform: public qwidget, public ui::bigwidget

private:

void my_function();

};————————————–

#include

#include 「myform.h」

void my_function(void)

————————————–

是不是不用說明大家也能明白呢?多繼承其實就是不僅從form需要的窗體類去派生,還要加上ui提供的類本身。這樣帶來的好處是你的窗體類繼承了ui裡的所有控制項和方法,呼叫時就可以少寫一些字。

單繼承和多繼承這兩種方法沒有好壞之分,大家可以根據自己的程式設計習慣取捨。

在pro檔案包含正確forms資訊的情況下,執行qmake; make就可以編譯工程了。 make時如果你認真看一下輸出就會發現,make在最開始編譯的時候就會自動呼叫uic去生成需要的**。經過make之後ui_myform.h檔案就生成了,建議大家去看一下這個檔案的內容,其中還是有一些有意思的東西值得研究的。下次再寫一篇帖子來說說ui檔案生成的**。

Qt4中ui檔案的使用方法

qt4中ui檔案的使用方法 ui檔案的使用是在qt4中不太容易上手的一點,因為很多同學都是從qt3公升級到qt4的,在公升級過程中發現這部分的變化非常之大,讓人有點無所適從。qt3的designer簡直可以媲美乙個ide,可以編輯 可以管理工程,可是到了qt4卻彷彿是退化到了史前一萬年,我們又來到那...

Qt4中ui檔案的使用方法

ui檔案的使用是在qt4中不太容易上手的一點,因為很多同學都是從qt3公升級到qt4的,在公升級過程中發現這部分的變化非常之大,讓人有點無所適從。qt3的designer簡直可以媲美乙個ide,可以編輯 可以管理工程,可是到了qt4卻彷彿是退化到了史前一萬年,我們又來到那個茹毛飲血的蠻荒時代,工程管...

Qt4中ui檔案生成vcproj

製作ui檔案 先應該用qt designer繪製乙個自己的介面,並存為myform.ui 這裡的myform可以用自己喜歡的名字代替 在製作自己的介面檔案時要注意以下幾個要點 1 要記住ui檔案的名字,因為uic生成的 會存在ui myform.h裡 2 要記住主窗體的object name,因為u...