Skip to content

Commit

Permalink
Reuse drawing window
Browse files Browse the repository at this point in the history
  • Loading branch information
gvanrossum committed May 2, 2024
1 parent 11edfb7 commit 3f099dc
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
11 changes: 10 additions & 1 deletion python/examples/drawing/demo.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import asyncio
import sys
import tkinter as tk

from dotenv import dotenv_values

Expand All @@ -23,6 +24,12 @@ async def main(file_path: str | None):
translator = TypeChatJsonTranslator(model, validator, schema.Drawing)
# print(translator._schema_str)

window = tk.Tk()
window.title("Click to continue...")
canvas = tk.Canvas(window, width=800, height=600, bg="white", highlightthickness=0)
canvas.pack(padx=10, pady=10)
canvas.bind("<Button-1>", lambda event: window.quit())

history: list[str] = []

async def request_handler(request: str):
Expand All @@ -39,7 +46,9 @@ async def request_handler(request: str):
if isinstance(item, schema.UnknownText):
print(" ", item.text)

render_drawing(value)
canvas.delete("all")
render_drawing(canvas, value)
window.mainloop()

await process_requests("~> ", file_path, request_handler)

Expand Down
17 changes: 7 additions & 10 deletions python/examples/drawing/render.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,7 @@
}


def render_drawing(drawing: Drawing):
window = tk.Tk()
window.title("Drawing")
window.configure(bg="white")

canvas = tk.Canvas(window, width=800, height=600, bg="white", highlightthickness=0)
canvas.pack(padx=10, pady=10)
def render_drawing(canvas: tk.Canvas, drawing: Drawing):

def draw_box(box: Box):
x1, y1 = box.x, box.y
Expand Down Expand Up @@ -69,8 +63,6 @@ def draw_arrow(arrow: Arrow):
case UnknownText():
print(f"Unknown text: {item.text}")

window.mainloop()


if __name__ == "__main__":
example_drawing = Drawing(
Expand Down Expand Up @@ -105,4 +97,9 @@ def draw_arrow(arrow: Arrow):
],
)

render_drawing(example_drawing)
window = tk.Tk()
window.title("Drawing")
canvas = tk.Canvas(window, width=800, height=600, bg="white", highlightthickness=0)
canvas.pack(padx=10, pady=10)
render_drawing(canvas, example_drawing)
window.mainloop()

0 comments on commit 3f099dc

Please sign in to comment.