from tkinter import *
import threading, time
root = Tk()
root.title("Tkinter rules!")
root.bind("<Escape>", exit);
is_drawing = False
rectangles = []
def redraw():
global size, is_drawing
# TODO !!!
w.delete(ALL)
for rect in rectangles:
w.create_rectangle(*rect, outline="blue")
if is_drawing:
w.create_rectangle(left_x, left_y, corner_x, corner_y, outline="red")
def draw_rectangle(event):
global left_x, left_y, is_drawing
if not is_drawing:
left_x, left_y = event.x, event.y
is_drawing = True
else:
rectangles.append([left_x, left_y, event.x, event.y])
is_drawing = False
redraw()
def cancel(event):
global is_drawing
is_drawing = False
w = Canvas(root, width=400, height=200)
w.pack()
def log(s):
logger.insert(END, s + "\n")
logger = Text(root,
width=60,
height=10, # кол-во символов
font="Courier-New 10",
)
logger.pack()
killed = False
def myLoop():
while not killed:
#print("I'm alive!")
redraw()
time.sleep(0.1)
print("I'm died =(")
thread = threading.Thread(target=myLoop)
thread.start()
def store_coordinates(event):
global corner_x, corner_y
corner_x, corner_y = event.x, event.y
root.bind("<Enter>", lambda x : log("Enter"))
w.bind('<Motion>', store_coordinates)
w.bind('<Button-1>', draw_rectangle)
w.bind('<Button-3>', cancel)
#w.focus_set()
root.bind('<Control-z>', cancel)
root.bind('<Control-Z>', cancel)
root.mainloop()
print("Miu!")
killed = True