设计时加载UI

1.首选创建三个ui窗体,分别为first.ui(ui_first.h),second.ui(ui_second.h),third.ui(ui_third.h)

2.再创建一个包含三个ui的头文件,并新建一个MyWidget类调用这三个窗体,并写入信号槽实现代码

头文件mywidget.h

#ifndef MYWIDGET_H

#define MYWIDGET_H

 

#include <QtGui>

 

#include "ui_first.h"

#include "ui_second.h"

#include "ui_third.h"

 

class MyWidget : public QWidget

{

Q_OBJECT

public:

MyWidget(QWidget *parent=0);

 

public slots:

void slotChild();

 

private:

Ui::First firstUi;

Ui::Second secondUi;

Ui::Third thirdUi;

};

 

#endif

 

mywidget.cpp:

#include "mywidget.h"

 

MyWidget::MyWidget(QWidget *parent)

: QWidget(parent)

{

 

 

QTabWidget *tabWidget = new QTabWidget(this);

 

QWidget *w1 = new QWidget;

firstUi.setupUi(w1);

 

QWidget *w2 = new QWidget;

secondUi.setupUi(w2);

 

tabWidget->addTab(w1,"First");

tabWidget->addTab(w2,"Second");

 

tabWidget->resize(500,500);

 

connect(firstUi.childPushButton,SIGNAL(clicked()),this,SLOT(slotChild()));

connect(secondUi.closePushButton,SIGNAL(clicked()),this,SLOT(close()));

}

 

void MyWidget::slotChild()

{

QDialog *dlg = new QDialog;

thirdUi.setupUi(dlg);

dlg->exec();

}

 

 

主文件main.cpp:

#include "mywidget.h"

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

QFont font("ZYSong18030",12);

app.setFont(font);

w->show();

return app.exec();

}


原文地址:https://www.cnblogs.com/djcsch2001/p/2012853.html