Для того, чтобы в Tkinter вызывать действия по нажатию клавиш (реагировать на клавиатуру), используется почти такой же bind
, как и для реакции на мышь, только привязывать надо не к холсту (Canvas), а к главному окну (root): root.bind('<Key>',keypress)
.
По нажатию на любую клавишу круг двигается вправо:
from tkinter import * from random import randrange as rnd, choice root = Tk() root.geometry('600x600+100+100') canv = Canvas(bg='white') canv.pack(fill=BOTH,expand=1) def keypress(event): global x canv.delete(ALL) r = 70 x += 10 canv.create_oval(x-r,y-r,x+r,y+r,fill='orange') x = 300 y = 200 root.bind('<Key>',keypress) mainloop()
Чтобы с помощью клавиш управления курсором управлять кругом, нужно знать коды клавиш. В разных операционных системах коды разные.
Узнайте коды клавиш с помощью print(event.keycode)
и подставьте правильный вариант для вашей операционной системы.
Ниже коды для Linux:
from tkinter import * from random import randrange as rnd, choice root = Tk() root.geometry('600x600+100+100') canv = Canvas(bg='white') canv.pack(fill=BOTH,expand=1) def keypress(event): global x canv.delete(ALL) r = 70 if event.keycode == 114: x += 10 elif event.keycode == 113: x -= 10 canv.create_oval(x-r,y-r,x+r,y+r,fill='orange') x = 300 y = 200 root.bind('<Key>',keypress) mainloop()
1. Круг должен перемещаться не только влево-вправо, но и вверх-вниз (по нажатию на соответствующие клавиши)
2. Добавьте управление клавишами WASD. Управление должно быть как с помощью «стрелок» так и WASD.
3. Добавьте: круг по щелчку возвращается в центр.
4. По нажатию любой клавиши управления курсором круг должен начинать двигаться в указанную сторону без остановки.
5. Добавьте: по щелчку мыши круг останавливается.
2. Добавьте управление клавишами WASD. Управление должно быть как с помощью «стрелок» так и WASD.
3. Добавьте: круг по щелчку возвращается в центр.
4. По нажатию любой клавиши управления курсором круг должен начинать двигаться в указанную сторону без остановки.
5. Добавьте: по щелчку мыши круг останавливается.