#!/usr/bin/env python3 """Basic testing for Show rendering with Tk output.""" import threading import time from tkinter import Tk, N, E, S, W, Label import sys from blc.workspace import Workspace from blc.tk import TkOutput from blc.render import BasicRenderer def update_time(m, l, r): 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)) if len(sys.argv) != 3: print("Usage: %s " % sys.argv[0]) sys.exit(1) w = Workspace.load(sys.argv[1]) s = w.functions[int(sys.argv[2])] root = Tk() root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) output = TkOutput(root) output.grid(row=0, sticky=N+E+S+W) label = Label(root) label.grid(row=1,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)) root.mainloop()