Форум сайта python.su
0
Ребят помогите пожалуйста. Почему при нажатии на ‘z’ не печатается ‘pry’? Вот код:
from tkinter import * root = Tk() root.geometry('100x50') def pry(): print('pry') root.bind('<z>', pry()) root.mainloop()
Офлайн
253
Magister6239Потому что вы наверное делаете не в соответствии с документацией. Дайте ссылку на документацию на основании которой вы решили что оно так будет работать.
Почему при нажатии на ‘z’ не печатается ‘pry’?
root.bind('<z>', pry()) # Это одно root.bind('<z>', pry) # А это совсем другое
Офлайн
27
Попробуй так:
root.bind("z", pry)
def pry(event): print('pry')
def klawa(event): klawisha = event.keysym # Нажатый символ # или kod_klaw = event.keycode # Код клавиши # Далее обрабатываем интересующее значение ... ... root.bind("<Key>", klawa)
Отредактировано Rafik (Дек. 6, 2019 07:11:47)
Офлайн
27
Откуда-то в своё время надыбал интересную утилитку, которая выводит на консоль атрибуты событий клавиатуры и мыши. Прилагаю эту утилиту. Запускаем, жмём клавиши или щелкаем мышкой в окне и смотрим результат в терминале.
Отредактировано Rafik (Дек. 6, 2019 07:35:25)
Прикреплённый файлы:
scanKeys.py (1,4 KБ)
Офлайн
0
клава у меня была на eng. За функцию спасиб)
Отредактировано Magister6239 (Дек. 6, 2019 20:18:57)
Офлайн
0
doza_and
Потому что вы наверное делаете не в соответствии с документацией. Дайте ссылку на документацию на основании которой вы решили что оно так будет работать.
root.bind('<z>', pry()) # Это одно
root.bind('<z>', pry) # А это совсем другое
Не спец в Tk но события ‘<z>’ думаю просто нет.
Офлайн
294
Magister6239нужно передавать имя функции(без скобок) а не результат выполнения (с скобками)
pry это функция, поэтому там стоят скобки()
[code python][/code]
Офлайн