我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议?在
正如您所期望的那样,当“启动”功能运行时,整个窗口(包括“停止”按钮)卡住/没有响应。在
“start”函数从一些html文件中提取一些信息,这可能需要相当长的时间(对于20个巨大的文件,它可能需要10分钟左右),我希望用户能够随时中断该过程。在from tkinter import *
import Ostap_process_twitter_file_folder
root = Tk()
def start (event):
Ostap_process_twitter_file_folder.start_extraction()
def stop (event):
# stop "start" function
label1 = Label(root, text = "source folder").grid(row=0)
label2 = Label(root, text = "output folder").grid(row=1)
e_sF = Entry(root)
e_oF = Entry(root)
e_sF.grid(row=0, column=1)
e_oF.grid(row=1, column=1)
startButton = Button(root, text = "start")
startButton.grid(row=2)
startButton.bind("", start)
stopButton = Button(root, text = "stop")
stopButton.grid(row=2, column=1)
stopButton.bind("", stop)
root.mainloop()
我想使用线程将是解决这个问题的一个方法。尽管我已经在这里查看了关于stackoverflow的类似问题和关于Python线程的各种介绍性资源(顺便说一句,不是那么简单),但我仍然不清楚如何在这种特殊情况下实现这些建议。在