首页 > 其他分享 >子线程启动tkinter并完美退出

子线程启动tkinter并完美退出

时间:2023-04-27 20:12:47浏览次数:36  
标签:canvas myPic tkinter img 完美 线程 tk import

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)

 

标签:canvas,myPic,tkinter,img,完美,线程,tk,import
From: https://www.cnblogs.com/zwnsyw/p/17360091.html

相关文章

  • 在线设计Tkinter界面,生成Python代码,Tkinter布局助手,拖拽生成界面,tkinter designer,可视
    设计地址:https://www.pytk.net/tkinter-helper/? 运行演示  教程地址:https://www.pytk.net/tkinter.html 常用演示"""本代码由[Tkinter布局助手]生成当前版本:3.2.4官网:https://www.pytk.net/tkinter-helperQQ交流群:788392508"""fromtkinterimportmessag......
  • [Unity]AssetBundle资源更新以及多线程下载
    前言此文章适合不太了解资源加载的萌新,有了入门基础之后再去github上搜大牛写的专业的资源加载方案才能得心应手,不然的话会看的很吃力或者说一脸懵逼。Unity里面关于资源加载我们都知道是下载更新AssetBundle,关于AssetBundle我之前的文章已经详细介绍过,没看过的朋友可以在看一下。......
  • C# WinForm线程里操作控件
    做winform程序,避免不了的要在线程里控制窗体上的控件,直接在子线程里操作控件会报错“线程间操作无效,从不是创建控件***的线程访问它”。解决方法:privatevoidForm1_Load(objectsender,EventArgse){Threadt1=newThread(t1_clock);t1.IsBackground=true;......
  • 练习——简单的线程练习
    packagecom.thread_;importjava.util.Scanner;/*在main方法中启动两个线程第1个线程循环随机打印100以内的整数直到第2个线程从键盘读取了“Q”命令。*/publicclassThreadExercise{publicstaticvoidmain(String[]args){Aa=newA();......
  • java线程之Semaphore
    Semaphore是信号量,用于线程间同步。例子,公交车上大概有24个座位,但是车上总共有40个人,那么,只要有一个人下车,另一个人就能得到一个座位,假设到终点站之前,每个人都能坐下。代码如下:packagecom.concurrent;importjava.util.Random;importjava.util.concurrent.CountDownLatch;imp......
  • java线程之FutureTask
    FutureTask是线程的异步计算。如果有多个线程,每个线程都要花很多时间计算,而且所花时间不同,最后要统计,就要用到此类。此类有个done方法,等call完后,执行此方法。代码:packagecom.concurrent;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importja......
  • java线程之wait、notifyAll
    wait、notifyAll是线程之间用来通信的,设计模式里的观察者模式。例子,上课前,同学在玩,一个同学观察老师是不是来了,如果来了,叫其他同学坐好。packagecom.concurrent;importjava.util.HashSet;importjava.util.Set;importjava.util.concurrent.CountDownLatch;importjava.util......
  • java 多线程 synchronized
    程序1:packagetestsynchronized;publicclassThread1implementsRunnable{ @Override publicvoidrun(){ synchronized(this){ for(inti=0;i<10;i++){ System.out.println(Thread.currentThread().getName() +"synchronizedloo......
  • java 多线程的start()和run()的理解
    run()方法中是各个线程要执行的具体内容。所以当一个线程直接调用run()时那么直接开始执行方法体,这是在main线程中的多个线程只能时按照顺序的等待前面的线程结束run()方法的执行。而调用start方法只是线程进入准备阶段(Ready),并没有真正执行,这需要JVM进行分配时间片进行轮转线程执......
  • detach,主线程终止后子线程会结束吗
    transfrom:https://blog.csdn.net/a0408152/article/details/129093394此前,我对detach的理解是,当主线程退出后,子线程能够继续存在。实际上,当主线程退出后,子线程也随之结束了。先看一个例子:#include<iostream>#include<thread>#include<unistd.h>usingnamespacestd;in......