Методом проб и ошибок удалось решить проблему. Большое спасибо Сергею, за то что натолкнул на правильную мысль.
Мне действительно следовало использовать замыкание в lambda-функции, в последствии это помогло получить необходимый результат.
Сергей подсказал мне, что проблема заключается в методе
.clicked()
. Я не смог в нём разобраться. Не смог понять, как его правильно использовать в моей ситуации, поэтому решил не использовать его вообще, а вместо этого заменить его методом
.released()
, который срабатывает в момент отпускания кнопки. После передачи lambda-функции с замыканием в него, всё заработало так, как я и хотел.
В результате функция выглядит так:
def add_functions_to_buttons(self):
for n in range(len(self.btns)):
self.btns[n].released.connect(lambda x=n: print(x+1))