在使用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中的控件了。