@Develoder
Моя игра https://ur-l.ru/sioKg

Как задать эвенту функцию lambda с переменной?

Привет! У меня возникла проблема, при создании эвента для обработки клика кнопки в PyQT. Я использую lambda, для передачи аргумента в метод. Вот и проблема, задание агрумента в лямбду происходит в цикле и в конце, концов, когда срабатывает эвент, вызывается метод и полученный параметр является конечным значением цикла, а не то значение на момент задания лямбды.

for i in range(7):
    butt = QtWidgets.QPushButton()
    butt.clicked.connect(lambda: self.CrateItem( i))

* При нажатии на любую из созданных кнопок, всегда выводится конечное значение переменной i, а не то которое задается в определенной итерации.
* Если что, это отрывок, обрезанный и упрощенный, у меня не всегда стоит 7, а может быть и 0 и 10.

Что мне с этим делать???
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы