|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 xjs1874113742 于 2020-7-6 17:29 编辑
RT,这个函数用的不是while循环,网上的方法基本都是基于threading的操作,把循环条件改为False来终止,但我的函数没用到while循环,用的是for循环,请问如何解决
我的函数大概像下面这样:
- import tkinter as tk
- root=tk.Tk()
- def mainfunction():
- for i in range(10000):
- print ("第{0}步已完成.format(i))
- button1=tk.Button(root,text='主函数',command=mainfunction)
- button1.pack()
- root.mainloop()
复制代码
我的主要问题是,我应该怎么在外部让mainfunction函数停下来
这样可否?代码的 time 只是为了测试,你可以删掉
- from threading import Thread
- import tkinter as tk
- from time import sleep # 这个可以去掉,只是测试时候速度慢点否则程序一下运行完都还来不及点终止
- root=tk.Tk()
- def mainfunction():
- def func():
- for i in range(10000):
- sleep(0.5) # 这个可以去掉
- print ("第{0}步已完成".format(i))
- if stop_mainfunction:
- print('函数停止运行')
- break
- global t
- t = Thread(target=func)
- t.setDaemon(True)
- t.start()
- def stop():
- global stop_mainfunction
- stop_mainfunction = True
- button1=tk.Button(root,text='主函数',command=mainfunction)
- button1.pack()
- stop_mainfunction = False
- stop_button = tk.Button(root,text='终止函数运行',command=stop)
- stop_button.pack()
- root.mainloop()
复制代码
|
|