Python, PyQt4 и сигналы (пишу игру "Сапёр")
В общем, создаю форму, в качестве ячеек выступают кнопки (QPushButton).
Нужно сигнал нажатия на всех кнопок привязать к вызову одной и той же функции, но с разными параметрами - (x и y, координаты ячейки)
Кнопки лежат в списке (массиве, если угодно) .
Сигналы пытался к ним привязывать так:
for i in list( range(self. size)): #ряд
for j in list( range(self. size)): #колонка
self.connect(self.btns[ i ][ j ], SIGNAL( 'clicked( )' ), lambda: self. openCell(i, j)) #для этой кнопки - вызвать функцию с заданными параметрами
Не работает, i и j в итоге всегда одинаковы (оно, впринципе, понятно почему) - и для кнопок вызывается действие с одними и теми же параметрами. Как быть?
Все, разобрался. Сделал свой класс кнопки, с блэкджеком и координатами, оттуда ловил сигнал нажатия и спокойно вызывал нужный метод через родительский виджет (параметр parentWidget).