Решите, какая кнопка была нажата [решено] - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть следующий код для создания группы вопросов, однако я столкнулся с препятствием. Мне нужен способ различить guish, какая кнопка была нажата, однако я не могу сделать это, поскольку все кнопки создаются в течение l oop:

tk.Label(self.canvas, text='Please choose an option below:').pack(fill='both',expand=True)
self.buttonGroup = tk.LabelFrame(self.canvas, text="Options")
self.buttonGroup.pack(fill='both',expand=True)
self.buttons = []

for i in range(0, len(options)):
    temp = tk.Button(self.buttonGroup, text=str(options[i]), bg=str(back), fg=str(fore))
    temp.pack(fill='both',expand=True)
    self.buttons.append(temp)

I уже прочитали эту статью и попробовали следующий код:

temp = tk.Button(self.buttonGroup, text=str(options[i]), bg=str(back), fg=str(fore), command=lambda: self.setSelection(i))

Однако функция просто устанавливает для выбранной кнопки индекс последней установленной кнопки.

Как я могу решить эту проблему? Пожалуйста, помогите.

1 Ответ

1 голос
/ 09 апреля 2020

Попробуйте передать индекс в качестве параметра по умолчанию в вашей лямбде, чтобы он связывался при создании лямбды, например:

command=lambda i=i: self.setSelection(i)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...