Форум сайта python.su
0
Дорого времени суток.
Вот простенький код:
#!/usr/bin/python
#-*- coding: utf-8 -*-
from Tkinter import*
root=Tk()
def button_on():
print ‘Press Button’
def quit(enev):
root.quit()
Button(root, text='Up',command=button_on).pack()
root.bind('<Escape>',quit)
root.mainloop()
Но есть одно НО!: Выводится сообщение только один раз, когда пользователь отпускает кнопку “Up”.
Нужно чтоб выводилось сообщение когда пользователь нажимает кнопку “Up”
Офлайн
39
.bind("<Button-1>", button_on)Офлайн
0
4kpt_IIIБлагодарю за совет.
Прикреплённый файлы:
xxx.py (954 байта)
Офлайн
0
Используя: root.bind_class('Button', ‘<ButtonPress-1>’, button_on)
Офлайн
39
_SSS_
Но это обход функций Button. Значит не поддерживает widget Button действие на нажатия кнопки “Up”
_SSS_
Используя: root.bind_class('Button', ‘<ButtonPress-1>’, button_on)
.bind("<Button-1>", button_on)
.bind("<ButtonPress-1>", button_on)
.bind("<1>", button_on)
.bind("<B-1>", button_on)
Офлайн
0
4kpt_IIIлибо вы не запускаете примеры и не видите очевидные ошибки, либо вы не понимаете поставленной задачи.
Офлайн
39
Вы наколбасили какого-то уродства с глобальным обвешиванием клавиш. А если еще кнопки добавятся? Их евенты тоже будут лететь на эту функцию.
Правильным решением является вывешивание callback функции на каждый виджет отдельно. Если callback функция одинаковая, то для вывешивания можно использовать цикл. НО!!! Вешать одну функцию на все виджеты одного класса является недопустимым. .bind_class используется для добавления к всем кнопкам специальной реакции на какие-то события. И у Вас явно не тот случай.
Офлайн
0
Это не уродство. это кнопки управления микроконтроллером! Привязку к клавиатуре реализовал без проблем. а вот визуалицацию и действие при нажатии по кнопкам – с касиками в библиотеке Tkinter, но в PyQt все разрешилось за 5 минут без выноса мозга. Неужели с помошью Tkinter можно реализовать только через танец с бубном???))))))))))))))))))) Была идея написание программы для запуска на различных платформах Linux and Windows. Tkinter идет с Python как стандартная библиотека!!! Поэтому хотел реализовать именно на ней.
Офлайн
39
_SSS_
Это не уродство. это кнопки управления микроконтроллером!
_SSS_
Привязку к клавиатуре реализовал без проблем. а вот визуалицацию и действие при нажатии по кнопкам – с касиками в библиотеке Tkinter, но в PyQt все разрешилось за 5 минут без выноса мозга. Неужели с помошью Tkinter можно реализовать только через танец с бубном???)))))))))))))))))))
Офлайн