Форум сайта python.su
0
Подскажите, можно ли как-нибудь сделать так, чтобы когда создали кнопку, дали ей имя и назначили функцию, чтобы при нажатии она передавала в функцию свое имя, очень надо, заранее спасибо
Офлайн
0
Если при нажатии будет выполняться функция, которая вычисляет ее имя, тоже пойдет, на кнопки биндить нельзя
Офлайн
857
Не пробовал пронаследоваться от класса кнопки и в классе наследнике добавить поле имя и метод для чтения этого имени? Будет та же кнопка, только у такой кнопки будет ещё имя сохранено и его можно будет получать через метод. Это такой общий шаблон, который подходит не только для добавления имён, но и для многого другого. Если же у кнопки можно получать текст, то лучше не плодить классы, а получить этот текст уже реализованными средствами. Это тоже такой общий шаблон.
Отредактировано py.user.next (Дек. 13, 2021 20:15:18)
Офлайн
294
Twist
дали ей имя и назначили функцию
Twistвы не находите тут противоречия? что по вашему “назначили функцию”?
на кнопки биндить нельзя
import tkinter as tk def handler(event): print(event.widget.name) root = tk.Tk() b1 = tk.Button(root, text="Click me") b1.name = 'кнопка 1' b2 = tk.Button(root, text="No, click me!") b2.name = 'кнопка 2' b1.pack() b2.pack() root.bind('<Button-1>', handler) root.mainloop()
[code python][/code]
Отредактировано PEHDOM (Дек. 14, 2021 17:46:56)
Офлайн