Tkinter
Appearance
Tkinter is a Python API for the Tk GUI. It is built into the Python standard library and is cross platform.
Images
To display an image, create a tk.Canvas and then use canvsa.create_image.
Example
import tkinter as tk
from PIL import Image, ImageTk
import requests
image_url = 'https://via.placeholder.com/256/0000FF/'
image = Image.open(requests.get(image_url, stream=True).raw)
window = tk.Tk()
main_frame = tk.Frame(window)
main_frame.pack()
canvas = tk.Canvas(main_frame,
width=image.size[0],
height=image.size[1])
canvas.pack()
photo_img = ImageTk.PhotoImage(image=image)
canvas_image = canvas.create_image(0, 0, image=photo_img, anchor=tk.NW)
window.mainloop()
# To update the image later on..
image_url2 = 'https://via.placeholder.com/256/FF00FF/'
image2 = Image.open(requests.get(image_url, stream=True).raw)
photo_img = ImageTk.PhotoImage(image=image2)
canvas.itemconfigure(canvas_image, image=photo_img)
- Notes
- Make sure the
ImageIk.PhotoImagedoes not get garbage collected.
Animation Loop
For interactive applications, you may want an animation loop called every few milliseconds.
To accomplish this, use .after.
Example
import tkinter as tk
import time
last_time = time.time()
def animation_loop():
global last_time
now = time.time()
delta_time = now - last_time
print("Time elapsed", delta_time)
last_time = now
window.after(1, animation_loop)
window = tk.Tk()
animation_loop()
window.mainloop()