diff options
Diffstat (limited to 'tktest.py')
-rwxr-xr-x | tktest.py | 19 |
1 files changed, 15 insertions, 4 deletions
@@ -4,16 +4,22 @@ import threading import time -from tkinter import Tk, N, E, S, W, Label +from tkinter import Tk, N, E, S, W, Label, Button import sys from blc.workspace import Workspace from blc.tk import TkOutput from blc.render import BasicRenderer -def update_time(m, l, r): +def update(m, l, sl, r): + """Update GUI elements.""" + if r.stall_lock.acquire(blocking=False): + r.stall_lock.release() + sl.config(text="Running") + else: + sl.config(text="Stalled") l.config(text="%.1f" % ((time.monotonic() - r.start_time) if r.start_time is not None else 0)) - m.after(50, lambda: update_time(m,l,r)) + m.after(50, lambda: update(m,l,sl,r)) if len(sys.argv) != 3: print("Usage: %s <workspace> <show id>" % sys.argv[0]) @@ -32,12 +38,17 @@ output.grid(row=0, sticky=N+E+S+W) label = Label(root) label.grid(row=1,sticky=N+E+S+W) +slabel = Label(root) +slabel.grid(row=2,sticky=N+E+S+W) + root.wm_title("BLC+ TkTest - "+s.name) renderer = BasicRenderer(s, output, minnx=13) rthread = threading.Thread(target=renderer.start) rthread.start() -root.after(50, lambda: update_time(root, label, renderer)) +Button(root,text="Advance",command=lambda *args: renderer.advance()).grid(row=3, sticky=N+E+S+W) + +root.after(50, lambda: update(root, label, slabel, renderer)) root.mainloop() |