Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции [RSS Feed]

#1 Июль 20, 2014 17:30:43

Mepkypuo
Зарегистрирован: 2014-07-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции

Всем привет!
Подскажите, пожалуйста, можно ли назначить кнопке через command функцию, которая читала бы атрибут text нажатой кнопки?

Отредактировано Mepkypuo (Июль 20, 2014 17:33:42)

Офлайн

#2 Июль 20, 2014 17:44:39

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции

Можно.

Офлайн

#3 Июль 20, 2014 17:53:18

Mepkypuo
Зарегистрирован: 2014-07-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции

4kpt_II
Можно.
А не подскажите как должна выглядеть данная функция?
Просто в голову ничего не приходит. Испробовал всё что было - не получилось.

Офлайн

#4 Июль 20, 2014 18:13:39

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции

Вот это правильный вопрос

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

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. Будут вопросы - пишите…

Отредактировано 4kpt_II (Июль 20, 2014 18:14:15)

Офлайн

#5 Июль 20, 2014 18:25:10

Mepkypuo
Зарегистрирован: 2014-07-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции

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. Будут вопросы - пишите…

Спасибо Вам огромное!!! Чуть голову не поломал, а оказалось всё просто. Совсем голова на выходных не варит))
Ещё раз, спасибо огромнейшее за ответ!

Офлайн

  • Начало
  • » GUI
  • » TKinter. Чтение атрибутов кнопки при вызове назначенной на кнопку функции[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version