# 需要导入模块: import Tkinter [as 别名]
# 或者: from Tkinter import mainloop [as 别名]
def main():
print("Loading replay memory...")
memory = replay_memory.ReplayMemory.create_instance_supervised()
print("Loading previous annotations...")
annotations = load_annotations()
#is_annotated = dict([(str(annotation.idx), True) for annotation in annotations])
current_state_idx = memory.id_min
if annotations is not None:
while current_state_idx < memory.id_max:
key = str(current_state_idx)
if not key in annotations:
break
current_state_idx += EVERY_NTH
print("ID of first unannotated state: %d" % (current_state_idx,))
master = Tkinter.Tk()
state = memory.get_state_by_id(current_state_idx)
canvas_height = state.screenshot_rs.shape[0] * ZOOM_FACTOR
canvas_width = state.screenshot_rs.shape[1] * ZOOM_FACTOR
print("canvas height, width:", canvas_height, canvas_width)
canvas = Tkinter.Canvas(master, width=canvas_width, height=canvas_height)
canvas.pack()
canvas.focus_set()
#y = int(canvas_height / 2)
#w.create_line(0, y, canvas_width, y, fill="#476042")
message = Tkinter.Label(master, text="Click to draw annotation. Press E to switch to eraser mode. Press S to save. Use Numpad +/- for brush size.")
message.pack(side=Tkinter.BOTTOM)
window_state = WindowState(master, canvas, memory, current_state_idx, annotations)
#canvas.bind("", OnPaint(window_state))
#master.bind("", lambda event: print(event))
#master.bind("", lambda event: print("right", event))
#master.bind("", lambda event: print("press", event))
master.bind("", OnLeftMouseButton(window_state))
#master.bind("", lambda event: print("release", event))
master.bind("", OnRightMouseButton(window_state))
canvas.bind("", lambda event: window_state.toggle_eraser())
canvas.bind("", lambda event: window_state.save_annotations(force=True))
canvas.bind("", lambda event: window_state.toggle_heatmap())
canvas.bind("", lambda event: window_state.previous_state(autosave=True))
canvas.bind("", lambda event: window_state.next_state(autosave=True))
canvas.bind("", lambda event: window_state.increase_brush_size())
canvas.bind("", lambda event: window_state.decrease_brush_size())
Tkinter.mainloop()