Найти - Пользователи
Полная версия: TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции
Начало » GUI » TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции
1
Mepkypuo
Всем привет!
Подскажите, пожалуйста, можно ли назначить кнопке через command функцию, которая читала бы атрибут text нажатой кнопки?
4kpt_II
Можно.
Mepkypuo
4kpt_II
Можно.
А не подскажите как должна выглядеть данная функция?
Просто в голову ничего не приходит. Испробовал всё что было - не получилось.
4kpt_II
Вот это правильный вопрос

Ответ на правильный вопрос:

def callback(parameter):
    print parameter
#
but = Tkinter.Button(root, text="my button")
but["command"] = lambda: callback(but["text"])

Но этот подход неверен в корне!!! Лучше использовать bind и event. В этом случае в event передается много чего полезного и ценного. В том числе и атрибут widget, который прямо указывает на виджет из которого пришло событие (в Вашем случае на кнопку):

def callback(event):
    print event.widget["text"]
#
but = Tkinter.Button(root, text="my_button")
but.bind("<Button-1>", callback)

P.S. Будут вопросы - пишите…
Mepkypuo
4kpt_II
Вот это правильный вопрос

Ответ на правильный вопрос:

def callback(parameter):
print parameter
#
but = Tkinter.Button(root, text=“my button”)
but = lambda: callback(but)

Но этот подход неверен в корне!!! Лучше использовать bind и event. В этом случае в event передается много чего полезного и ценного. В том числе и атрибут widget, который прямо указывает на виджет из которого пришло событие (в Вашем случае на кнопку):

def callback(event):
print event.widget
#
but = Tkinter.Button(root, text=“my_button”)
but.bind(“<Button-1>”, callback)

P.S. Будут вопросы - пишите…

Спасибо Вам огромное!!! Чуть голову не поломал, а оказалось всё просто. Совсем голова на выходных не варит))
Ещё раз, спасибо огромнейшее за ответ!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB