在使用QT做應用程序的時候幾乎都會用到比較多的對話框,下面內容講解下如何使用多個ui文件進行設計。注:下面使用的是Ubuntu16.04下的QT5
首先先建立一個工程,編譯后結果如下:
上面只有一個按鈕,現在我們新建一個ui,然后點擊該按鈕來調用新建的ui
然后一路默認就可以來
現在我們需要在mainwindow.h文件中定義一個剛才新建的對象:
頭文件中包含ui類的頭文件
#include "dialog.h"
然后在private:里面定義一個對象:
Dialog dia;
然后在按鈕槽函數中添加
dia.exec();
編譯一下就后運行點擊按鈕就會彈出剛才新建的窗口。
但現在問題是如何訪問窗口中的資源呢?
首先添加必要的頭文件,在mainwindow.h文件中包含兩個頭文件
#include "dialog.h"
#include "ui_dialog.h"
第一個是類的聲明,第二個是ui資源相關的頭文件
接下來需要修改dialog.h文件中類的部分,最開始新建ui的時候默認新建的類中ui是私有屬性,現在由於其他類需要訪問這個類,所以此時需要將其屬性修改為公有。
如圖所示:
然后在新建的ui界面文件中隨便放置一下控件。
現在回到mainwindow.cpp文件中,在按鈕的槽函數中寫:
void MainWindow::on_pushButton_clicked() { dia.ui->pushButton->setText("CNN"); dia.exec(); }
然后編譯,我們發現點擊按鈕后會彈出窗口,且窗口上的按鈕的文本變為了“CNN”
這樣就可以訪問另一個ui中的控件了。