子线程启动tkinter并完美退出

发布时间 2023-04-27 20:02:07作者: zwnsyw
import sys
from tkinter import *

from PIL import Image, ImageTk
from threading import Thread


def ui():
    myPic = None

    def openimg():
        global myPic
        img = Image.open("img.png")
        myPic = ImageTk.PhotoImage(img)
        return myPic

    def closeWindow():
        sys.exit()

    tk = Tk()

    canvas = Canvas(tk, width=500, height=500)
    canvas.create_image(0, 0, image=openimg(), anchor="nw")
    canvas.pack(fill=BOTH, expand=True)

    # 自主处理关闭 x 按钮
    tk.protocol('WM_DELETE_WINDOW', closeWindow)

    tk.mainloop()


try:
    T = Thread(target=ui)
    T.start()
except:
    print(1111)
    pass

for i in range(10000000000):
    print(i)