我是 C 的初學者。
我正在嘗試使用 QSignalMapper 傳遞引數。我做這樣的事情:
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
}
我可以把 mySlot() 放在哪里?我需要通過變數“prova”謝謝大家。
uj5u.com熱心網友回復:
忘記 QSignalMapper 并使用 lambdas:
QObject::connect(but, &QButton::clicked, myObject, [myObject,prova]() { myObject->mySlot(prova); });
萬一mySlot
只是一個常規功能:
QObject::connect(but, &QButton::clicked, [prova]() { mySlot(prova); });
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496978.html
標籤:C qt 论据 信号槽 qsignalmapper
上一篇:Qtimer事件未執行
下一篇:如何覆寫QML專案