Программа на Tkinter, которая печатает коды нажатых клавиш:
from tkinter import *
def do(event):
print(event.keycode)
win = Tk()
can = Canvas(win, width=800, height=600)
can.pack()
win.bind('<Key>', do)
win.mainloop()
Отображаем коды клавиш в графическом окне:
from tkinter import *
def do(event):
can.itemconfig(txt, text=event.keycode) # Меняем текст у объекта txt.
win = Tk()
can = Canvas(win, width=800, height=600)
txt = can.create_text(120, 70, text='Текст', fill='blue') # Пишем текст.
can.pack()
win.bind('<Key>', do) # Регистрируем/перехватываем нажатия клавиш направляя их в свою функцию.
win.mainloop()
Задаём тексту размер, через указание шрифта и размера шрифта:
from tkinter import *
def do(event):
can.itemconfig(txt, text=event.keycode) # Меняем текст у объекта txt.
win = Tk()
can = Canvas(win, width=800, height=600)
txt = can.create_text(120, 70, text='Текст', font=('Arial', '25'), fill='blue') # Пишем текст.
can.pack()
win.bind('<Key>', do) # Регистрируем/перехватываем нажатия клавиш направляя их в свою функцию.
win.mainloop()
Сдвигаем текст вправо:
def do(event):
can.itemconfig(txt, text=event.keycode) # Меняем текст у объекта txt.
x1, y1 = can.coords(txt) # Получаем координаты объекта txt.
can.moveto(txt, x=x1 + 5) # Меняем координату x у объекта txt - сдвигаем вправо.
Рисуем прямоугольник и сдвигаем его вместе с текстом вправо:
def do(event):
. . .
x1, y1, x2, y2 = can.coords(p1) # Получаем координаты объекта p1 - здесь их 4.
can.moveto(p1, x=x1 + 10)
. . .
p1 = can.create_rectangle(10, 120, 210, 170, fill='green')
. . .
TKinter - функции (команды в таблице)
event.keycode
canvas.move()
canvas.moveto()
canvas.itemconfig()
canvas.coords()
- canvas.move(ob, x, y) - переместить ob в координаты x, y - по ним расположить левый верхний угол
- canvas.itemconfig(ob, fill="red", width="200") - изменить свойства объекта ob
- x1, y1, x2, y2 = canvas.coords(ob) получить координаты объекта ob
- canvas.coords(ob, x1, y1, x2, y2) установить новые координаты объекта ob
- event.keycode в keycode находится код нажатой клавиши (применяется в функции, вызываемой в bind())