Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 6, 2017 07:34:00

0333_z
Зарегистрирован: 2017-12-05
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехват нажатий клавиш на клавиатуре

Всем доброго времени суток, начал кодить на питоне (3.6) относительно недавно, но, так как опыт в программировании имеется, то решил написать самую простецкую “змейку”. Столкнулся с такой проблемой, что не могу найти, каким образом можно перехватывать нажатия клавиш на клавиатуре (до этого делал тоже игру, где всё было завязано на нажатии ЛКМ и ПКМ, реализовал всё достаточно просто через canvas.bind('<Button-1>',“название функции”), а потом уже в самой функции обращался к событию через event.num). Так вот, можно ли сделать что-нибудь наподобие этого?

P.S. (Использую Win10)

Офлайн

#2 Дек. 6, 2017 08:36:07

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Перехват нажатий клавиш на клавиатуре

Если tk, то можно:

 from tkinter import *
import string
def some_thing_to_do(event):
    print(event.keysym)
    if event.keysym in string.ascii_lower_case:
        dosmthing()
root.bind("<KeyPress>", some_thing_to_do)  # без вызова, а то функция выполнится в самом начале программы, когда ты создашь root.



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Дек. 6, 2017 18:58:02

0333_z
Зарегистрирован: 2017-12-05
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехват нажатий клавиш на клавиатуре

Спасибо, немного подшаманил и всё получилось.
Хотелось бы ещё узнать, если я могу обращаться к кнопкам на клавиатуре, как <w> или <s>
( root.bind(“<s>”, some_thing_to_do) ), то каким образом обращаться к стрелочкам на клавиатуре?

Отредактировано 0333_z (Дек. 6, 2017 19:07:49)

Офлайн

#4 Дек. 6, 2017 19:32:05

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Перехват нажатий клавиш на клавиатуре

0333_z
то каким образом обращаться к стрелочкам на клавиатуре?
http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
For an ordinary 102-key PC-style keyboard, the special keys are Cancel (the Break key), BackSpace, Tab, Return(the Enter key), Shift_L (any Shift key), Control_L (any Control key), Alt_L (any Alt key), Pause, Caps_Lock, Escape, Prior (Page Up), Next (Page Down), End, Home, Left, Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Num_Lock, and Scroll_Lock.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version