То, что lambda
:
lambda key: self.keyClick(key)
эквивалентно этому:
def dummy(key):
self.keyClick(key)
Итак, в основном вы принимаете параметр из сигнала clicked
, который возвращает checked
состояние кнопки, и оно False
, поскольку у вас нет кнопки с возможностью проверки, и вы передаете ее методу keyClick
.keyClick
метод не получает параметр key
в цикле for.
Возможным решением будет запись вашего lambda
, принимающего два параметра, один со значением по умолчанию вашего предполагаемого значения:
lambda checked, key=key: self.keyClick(key)
Почему вам нужно сделать key=key
- это совсем другая тема. Этот конкретный ответ (вместе с другими ответами) по смежной теме может пролить на него некоторый свет.