如何从lambda连接中提取值



一旦用户按下"PBGen",SBMat和PBGen就会消失,所以我试图在变量"ent"中收集SBMat的值,但它崩溃了。你能帮我吗?

#include "wmenu.h"
#include <ui_Menu.h>
#include <QPushButton>
#include <QSpinBox>
WMenu::WMenu(QWidget *parent) : QWidget(parent) , Pre(new Ui::Principal)
{

Pre->setupUi(this);
int ent=0;
connect(Pre->PBGen,(&QPushButton::clicked),[=,&ent]()
{
Pre->SBMat->hide();
Pre->PBGen->hide();
ent=Pre->SBMat->value();

});
}
WMenu::~WMenu()
{
}

将ent声明为类成员:

class WMenu....
{
....
private:
...
...
int ent{};
}

在构造函数中做:

WMenu::WMenu(QWidget *parent) : QWidget(parent) , Pre(new Ui::Principal)
{        
Pre->setupUi(this);
//int ent=0;
connect(Pre->PBGen,(&QPushButton::clicked),[this]()
{
Pre->SBMat->hide();
Pre->PBGen->hide();
ent=Pre->SBMat->value();              
});
}

最新更新