thirdDialog.h 
 
#ifndef THIRDDIALOG_H 
#define THIRDDIALOG_H 
#include <QtGui> 
#include "ui_third.h" 
class thirdDialog:public QDialog,private Ui::Third 
{ 
Q_OBJECT 
public: 
thirdDialog(QWidget *parent=0); 
~thirdDialog(); 
}; 
#endif 
thirdDialog.cpp 
#include "thirdDialog.h" 
thirdDialog::thirdDialog(QWidget *parent) 
{ 
setupUi(this); 
} 
thirdDialog::~thirdDialog() 
{ 
} 
 maindialog.h 
 
#ifndef MAINDIALOG_H 
#define MAINDIALOG_H 
#include <QtGui> 
#include "ui_first.h" 
#include "ui_second.h" 
#include "thirdDialog.h" 
class MainDialog : public QDialog 
{ 
Q_OBJECT 
public: 
MainDialog(QWidget *parent = 0, Qt::WFlags flags = 0); 
~MainDialog(); 
private: 
Ui::First firstUi; 
Ui::Second secondUi; 
private slots: 
void on_btnChild_clicked(); 
}; 
#endif // MAINDIALOG_H 
 maindialog.cpp 
 
#include "maindialog.h" 
MainDialog::MainDialog(QWidget *parent, Qt::WFlags flags) 
: QDialog(parent, flags) 
{ 
QTabWidget *tabWidget = new QTabWidget(this); 
QDialog *w1 = new QDialog; 
firstUi.setupUi(w1); 
QWidget *w2 = new QWidget; 
secondUi.setupUi(w2); 
tabWidget->addTab(w1,tr("First Tab")); 
tabWidget->addTab(w2,tr("Second Tab")); 
tabWidget->resize(300,300); 
connect(firstUi.btnClose,SIGNAL(clicked()),this,SLOT(close())); 
connect(secondUi.btnChild,SIGNAL(clicked()),this,SLOT(on_btnChild_clicked())); 
} 
MainDialog::~MainDialog() 
{ 
} 
void MainDialog::on_btnChild_clicked() 
{ 
thirdDialog *dlg = new thirdDialog; 
dlg->exec(); 
} 
 分析: 
多继承方式可直接对ui界面上的控件或函数进行操作,代码编写更简洁; 
而是用单继承方式,在操作ui页面上的控件时需加上ui对象前缀,编写代码较为麻烦。 
但,对于程序中所需ui页面较多时,使用单继承法则要灵活的多。。