Мне нужно добавить дополнительный аргумент в слот (2 аргумента) при соединении с сигналом только с одним аргументом для нескольких виджетов одного типа.Поэтому я создал вектор из Widget
объектов, попытался создать соединения с помощью лямбда-функции в цикле for.
Вот иллюстрация того, что я пробовал:
QWidget* widget1, widget2, widget3, widget4;
/*...
Assign memory to them
...*/
QVector <QWidget> m_widgetVec = {widget1, widget2, widget3, widget4}
for(int i=0; i < 4; i++)
{
connect(m_widgetVec[i], &QWidget::clicked, [&](bool state){
myfunc(i, state);}));
}
Когда выполняются значения Iпринять для состояния в порядке, но значение i
всегда равно 0. Я ожидаю, что i
будет 0,1,2,3.для виджетов 1,2,3,4.
Есть предложения?Ценю вашу помощь.