I'm a beginner in c .
i'm trying to pass an argument using QSignalMapper. I do something like this:
int main(int argc, char** argv)
{
...
QSignalMapper * mapper = new QSignalMapper(0);
QObject::connect(mapper,SIGNAL(mapped(int )), 0 ,SLOT(mySlot(int )));
int prova=11;
mapper->setMapping(but, prova);
QObject::connect(but, SIGNAL(clicked()),mapper,SLOT(map()));
//do stuff
}
Where i can put mySlot()? I need to pass the variable "prova" Thanks to all.
CodePudding user response:
Forget about QSignalMapper and use lambdas:
QObject::connect(but, &QButton::clicked, myObject, [myObject,prova]() { myObject->mySlot(prova); });
In case mySlot
is just a regular function:
QObject::connect(but, &QButton::clicked, [prova]() { mySlot(prova); });