Ол
Олег

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).

ЮШ
Юрий Шарга

мало знаком с питоном. Но с динамически создаваемыми формами как то раз мучался сильно.
По моему нужно в функции которая вызывается каждый раз узнавать колонку и столбец, это можно сделать только по самому объекту кнопки т. е. внутри функции self. - и какой нибудь идентификатор. В delphi например при обработке событий клика обязательным параметром был sender - кнопка по которой кликнули. я кнопкам давал имена типа bc1r1 с номером строки и столбца.

НК
Ника Курганова

напишите callback, в который будете передовать имя кнопки... без мучений с координатами и т. д. благо в питоне все объект, и все можно хранить везде :))) за это его и люблю)))

Похожие вопросы
Примеры сайтов на Python?
Python беда, выручайте
Python. Подскажите, где взять описание того, как работать в Python.
как работать с Python
простой вопрос по python
Python. для начинающихроков или кини
Python область видимости.
Можно ли начать с Python?
Python
Пойдёт игра Косынка и Сапёр? На вот этом компе?