愚公移山日记·5
自我介绍
今天的我和昨天的我一样没啥大变化,不过今天是自学python的第。。几天来着,搞不清楚了就是昨天+1
学习进度
今天的学习充实且快乐哈哈哈,您信吗?今天学习的是Day13线程与进程还有
抛砖引玉
说到今天学的线程与进程,我感觉哈,对于一个未经人事的小白来讲今天的课程确实有些生涩难懂,而且在今天的学习线程与进程的实例种有参杂昨天的tkinter模块,确实有感觉有点他们对我的深深恶意那么下面那来代码
import time
import tkinter
import tkinter.messagebox
from threading import Thread
def main():
class DownloadTaskHandler(Thread):
def run(self):
time.sleep(10)
tkinter.messagebox.showinfo('提示','下载完成!')
button1.config(state=tkinter.NORMAL)
def download():
#禁用下载按钮
button1.config(state=tkinter.DISABLED)
#通过daemon参数将线程设置为守护线程(主程序退出就不再保留执行)
#在线程中处理耗费时间的下载任务
DownloadTaskHandler(daemon=True).start()
def show_about():
tkinter.messagebox.showinfo('关于', '来自河南的小白')
top = tkinter.Tk()
top.title('单线程')
top.geometry('200x150')
top.wm_attributes('-topmost', 1)
panel = tkinter.Frame(top)
button1 = tkinter.Button(panel, text='下载', command=download)
button1.pack(side='left')
button2 = tkinter.Button(panel, text='关于', command=show_about)
button2.pack(side='right')
panel.pack(side='bottom')
tkinter.mainloop()
if __name__ == '__main__':
main()
以上代码均来源于该学习网站,在这代码中间看到很多陌生的库,陌生的模板,陌生的用法,但是如果仅仅是考虑库的使用的话其实还是很简单的,但是编程还是很多考思想,对于问题的解决的思路,那我先来分析一下,这段代码的输出结果是以“单线程”为名称的一个窗口,在窗口中有两个按钮,其一是下载,另一个是关于,下载所运行的是一个十秒的模拟下载,十秒之后会出现一个返回框,关于是直接返回一个对话框。那么如果不使用多进程,在咱们点击下载之后,关于的那个按钮是点击不了的。
后记
今天的学习成果有点少