Форум сайта python.su
Подскажите, можно ли как-нибудь сделать так, чтобы когда создали кнопку, дали ей имя и назначили функцию, чтобы при нажатии она передавала в функцию свое имя, очень надо, заранее спасибо
Офлайн
Если при нажатии будет выполняться функция, которая вычисляет ее имя, тоже пойдет, на кнопки биндить нельзя
Офлайн
Не пробовал пронаследоваться от класса кнопки и в классе наследнике добавить поле имя и метод для чтения этого имени? Будет та же кнопка, только у такой кнопки будет ещё имя сохранено и его можно будет получать через метод. Это такой общий шаблон, который подходит не только для добавления имён, но и для многого другого. Если же у кнопки можно получать текст, то лучше не плодить классы, а получить этот текст уже реализованными средствами. Это тоже такой общий шаблон.
Отредактировано py.user.next (Дек. 13, 2021 20:15:18)
Офлайн
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)
Офлайн