Найти - Пользователи
Полная версия: bind в Tkinter
Начало » Python для новичков » bind в Tkinter
1
Magister6239
Ребят помогите пожалуйста. Почему при нажатии на ‘z’ не печатается ‘pry’? Вот код:

 from tkinter import *
root = Tk()
root.geometry('100x50')
def pry():
    print('pry')
root.bind('<z>', pry())
root.mainloop()
doza_and
Magister6239
Почему при нажатии на ‘z’ не печатается ‘pry’?
Потому что вы наверное делаете не в соответствии с документацией. Дайте ссылку на документацию на основании которой вы решили что оно так будет работать.
 root.bind('<z>', pry()) # Это одно
root.bind('<z>', pry) # А это совсем другое
Не спец в Tk но события ‘<z>’ думаю просто нет.
Rafik
Попробуй так:
 root.bind("z", pry)
Функция должна принимать один аргумент:
 def pry(event):
    print('pry')
При прогоне проверь раскладку клавиатуры, т.к. с раскладкой “RU” работать не будет, ибо будет набиваться буква “я”.
Корректнее будет, если обработку клавиш вывести в отдельную функцию и привязать её через Key
 def klawa(event):
    klawisha = event.keysym  # Нажатый символ
    # или
    kod_klaw = event.keycode  # Код клавиши
    # Далее обрабатываем интересующее значение 
    ...
    ...
root.bind("<Key>", klawa)
Rafik
Откуда-то в своё время надыбал интересную утилитку, которая выводит на консоль атрибуты событий клавиатуры и мыши. Прилагаю эту утилиту. Запускаем, жмём клавиши или щелкаем мышкой в окне и смотрим результат в терминале.
Magister6239
клава у меня была на eng. За функцию спасиб)
Magister6239
doza_and
Потому что вы наверное делаете не в соответствии с документацией. Дайте ссылку на документацию на основании которой вы решили что оно так будет работать.
root.bind('<z>', pry()) # Это одно
root.bind('<z>', pry) # А это совсем другое
Не спец в Tk но события ‘<z>’ думаю просто нет.

pry это функция, поэтому там стоят скобки()
PEHDOM
Magister6239
pry это функция, поэтому там стоят скобки()
нужно передавать имя функции(без скобок) а не результат выполнения (с скобками)
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