The use of Qt UI in programs an introduction to multiple inheritance

  • 2020-04-01 21:25:24
  • OfStack

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(); 
} 

Analysis of the :
Multiple inheritance method can be directly on the UI interface of the control or function operation, code is more concise;
Instead, it USES a single inheritance approach, requiring UI object prefixes when manipulating controls on UI pages.
However,, it is much more flexible to use a single inheritance rule for applications that require more UI pages.

Related articles: