#include "widget.h"
#include "ui_widget.h"
#include "mydialog.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
MyDialog* dlg =new MyDialog(this);
//连接方式
connect(dlg, &MyDialog::dlgReturn,this,&Widget::showValue);
connect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
QMetaObject::Connection myConnection=connect(dlg,&MyDialog::dlgReturn,[=](int value){
ui->label->setText(tr("获取的值是:%1").arg(value));
});
//断开方式
// 断开与一个对象所有信号的所有关联
disconnect(dlg,0,0,0,0);
// 和上面功能一样
dlg->disconnect();
// 断开与一个指定信号的所有关联
disconnect(dlg,SIGNAL(dlgReturn(int)),0,0);
// 和上面功能一样
dlg->disconnect(SIGNAL(dlgReturn(int)));
// 断开与一个指定的receiver的所有关联
disconnect(dlg,0,this,0);
dlg->disconnect(this);
// 断开一个指定信号和槽的关联
disconnect(dlg,SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
dlg->disconnect(SIGNAL(dlgReturn(int)),this,SLOT(showValue(int)));
disconnect(myConnection);
dlg->show();
}
Widget::~Widget()
{
delete ui;
}
void Widget::showValue(int value)
{
ui->label->setText(tr("获取的值是:%1").arg(value));
}