當(dāng)前位置:
首頁(yè) >
Qt中Ui的使用
發(fā)布時(shí)間:2025/6/15
36
豆豆
Qt中Ui的使用
(1)ui通常是用Qt 設(shè)計(jì)師設(shè)計(jì)出來(lái)的界面文件的后綴。通常情況下ui是一個(gè)指向這個(gè)界面類的指針。ui-> 一般就是用來(lái)訪問這個(gè)界面類里面的控件。例如你的ui文件里有一個(gè)叫okButton的QPushButton。你就可以這樣來(lái)訪問這個(gè)按鈕ui->okButton。
(2)我們知道在Qt Project中,窗口類的實(shí)現(xiàn)有三種途徑,要么繼承QMainWindow,或是繼承QWidget,再或是繼承QDialog。而對(duì)于類似于Ui::MainWindow類的使用則有兩種方法:
? ? ? 第一種方法:假設(shè)我們的真正的窗口類叫MainWindow,它繼承于QMainWindow,那么它可以有一個(gè)Ui::MainWindow的私有成員,并在MainWindow的構(gòu)造函數(shù)中,實(shí)例化這個(gè)私有的Ui::MainWindow,之后調(diào)用這個(gè)私有的Ui::MainWindow的setupUi方法,設(shè)置MainWindow的用戶界面接口,即按.ui文件的設(shè)計(jì)初始化MainWindow的界面。這樣,一個(gè)按照.ui文件設(shè)計(jì)的界面的窗口就建立起來(lái)了。
? ? ? 第二種方法:仍然假設(shè)我們的真正的窗口類叫MainWindow,它仍然要選擇QMainWindow,QWidget,QDialog中的一個(gè)類進(jìn)行繼承。而與前一種方法不同的是,這個(gè)MainWindow類不需要一個(gè)Ui::MainWindow類的私有成員,而是使用了C++中的多重繼承,讓MainWindow同時(shí)繼承Ui::MainWindow。而這時(shí)只需在要使用MainWindow的時(shí)候?qū)嵗?#xff0c;在它的構(gòu)造函數(shù)中調(diào)用setupUi方法,即可。
(3)Ui::Dialog *ui; // 聲明一個(gè)子類
在dialog.h中我們有這么一句Ui::Dialog *ui; 使用了Ui::Dialog 來(lái)定義一個(gè)指針,但是這個(gè)Ui::Dialog并沒有實(shí)際上進(jìn)行定義(我們是在下文中的ui_dialog.h中定義的Dialog),也沒有包含相關(guān)頭文件,所以用了一個(gè)前置聲明(關(guān)于前置聲明此處略) 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
(1)ui通常是用Qt 設(shè)計(jì)師設(shè)計(jì)出來(lái)的界面文件的后綴。通常情況下ui是一個(gè)指向這個(gè)界面類的指針。ui-> 一般就是用來(lái)訪問這個(gè)界面類里面的控件。例如你的ui文件里有一個(gè)叫okButton的QPushButton。你就可以這樣來(lái)訪問這個(gè)按鈕ui->okButton。
(2)我們知道在Qt Project中,窗口類的實(shí)現(xiàn)有三種途徑,要么繼承QMainWindow,或是繼承QWidget,再或是繼承QDialog。而對(duì)于類似于Ui::MainWindow類的使用則有兩種方法:
? ? ? 第一種方法:假設(shè)我們的真正的窗口類叫MainWindow,它繼承于QMainWindow,那么它可以有一個(gè)Ui::MainWindow的私有成員,并在MainWindow的構(gòu)造函數(shù)中,實(shí)例化這個(gè)私有的Ui::MainWindow,之后調(diào)用這個(gè)私有的Ui::MainWindow的setupUi方法,設(shè)置MainWindow的用戶界面接口,即按.ui文件的設(shè)計(jì)初始化MainWindow的界面。這樣,一個(gè)按照.ui文件設(shè)計(jì)的界面的窗口就建立起來(lái)了。
? ? ? 第二種方法:仍然假設(shè)我們的真正的窗口類叫MainWindow,它仍然要選擇QMainWindow,QWidget,QDialog中的一個(gè)類進(jìn)行繼承。而與前一種方法不同的是,這個(gè)MainWindow類不需要一個(gè)Ui::MainWindow類的私有成員,而是使用了C++中的多重繼承,讓MainWindow同時(shí)繼承Ui::MainWindow。而這時(shí)只需在要使用MainWindow的時(shí)候?qū)嵗?#xff0c;在它的構(gòu)造函數(shù)中調(diào)用setupUi方法,即可。
(3)Ui::Dialog *ui; // 聲明一個(gè)子類
在dialog.h中我們有這么一句Ui::Dialog *ui; 使用了Ui::Dialog 來(lái)定義一個(gè)指針,但是這個(gè)Ui::Dialog并沒有實(shí)際上進(jìn)行定義(我們是在下文中的ui_dialog.h中定義的Dialog),也沒有包含相關(guān)頭文件,所以用了一個(gè)前置聲明(關(guān)于前置聲明此處略) 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
- 上一篇: Qt中的槽
- 下一篇: Nanopi NEO Air串口代码