类A为界面基础类:
#include <QtWidgets/QWidget>
#include "ui_qttest.h"
#include "qaddclass.h"
class QtTest : public QWidget
{
Q_OBJECT
public:
QtTest(QWidget *parent = 0);
~QtTest();
public slots:
void doslots();
//接收B类信号槽函数
void getstr(QString str);
private:
Ui::QtTestClass ui;
public:
QAddClass *myclass;
};
类B为界面提升类:
class QAddClass : public QWidget
{
Q_OBJECT
public:
QAddClass(QWidget *parent = 0);
~QAddClass();
signals:
//信号发出函数
void StrSigs(QString str);
public slots:
void pussButtonDown();
};
Qt在A类主界面提升widget为该B 类 ,提升之后设置接收emit信号
#include "qttest.h"
QtTest::QtTest(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
QFont sansFont("Helvetica [Cronyx]", 12);
ui.lineEdit->setFont(sansFont);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(doslots()));
//界面提升类///
connect(ui.widget, SIGNAL(StrSigs(QString)), this, SLOT(getstr(QString)));
}
QtTest::~QtTest()
{
}
void QtTest::doslots()
{
QString str = ui.lineEdit->text();
ui.pushButton->setText(str);
}
void QtTest::getstr(QString str)
{
ui.lineEdit->setText(str);
}