I'm trying to learn tkinter by writing virtual camera. Window with canvas is popping up, handlers are reading pressed keys and calling functions. But when I'm pressing 'P' button associated with clearing canvas, writing message and closing window nothing except closing windows really happens. And I honestly don't know what am I doing wrong. Could you help me finding out why I can't clear elements and write here?
import numpy
import sys
import tkinter
from time import sleep
import math
end = False
STEP = 5
ZOOM = 20
ROTATION = math.pi/15
"""
def zoom(symbol):
def move(vector):
def rotate(direction):
"""
def fin():
global end
end = True
def key(event):
handler = {
'w': lambda: move([0, 0, -STEP]),
's': lambda: move([0, 0, STEP]),
'a': lambda: move([STEP, 0, 0]),
'd': lambda: move([-STEP, 0, 0]),
'q': lambda: move([0, -STEP, 0]),
'e': lambda: move([0, STEP, 0]),
'r': lambda: zoom(True),
'f': lambda: zoom(False),
'y': lambda: rotate(8),
'h': lambda: rotate(2),
'g': lambda: rotate(4),
'j': lambda: rotate(6),
't': lambda: rotate(1),
'u': lambda: rotate(3),
'p': lambda: fin(),
}.get(event.char)
if handler:
handler()
render()
def render():
if end:
canvas.delete("all")
canvas.create_text(200, 30, fill="white", text="bye bye")
canvas.pack()
sleep(2)
sys.exit('elo')
canvas.pack()
root = tkinter.Tk()
root.title('Camera')
canvas = tkinter.Canvas(root, width=1024, height=768, bg='black')
canvas.create_line(0, 100, 200, 0, fill="red")
root.bind('<Key>', key)
render()
tkinter.mainloop()