使用 Python 和 Tkinter 实现自动保存功能

Auto-save function implementation with Python and Tkinter

这可能是一个一般性问题。我正在修改前同事写的 Python 代码。代码的主要目的是

  1. 从本地读取一些文件
  2. 弹出一个GUI来做一些修改
  3. 保存文件到本地

GUI 是用 Python 和 Tkinter 编写的。实际上我对 Tkinter 不是很熟悉。现在,我想实现一个自动保存功能,它与 Tkinter 的 mainloop() 一起运行,并且每 5 分钟自动保存修改后的文件。我想我需要第二个线程来做到这一点。但我不确定如何。任何想法或例子将不胜感激!!谢谢

正如评论所说,使用'after'递归。

import Tkinter
root = Tkinter.Tk()

def autosave():
    # do something you want
    root.after(60000 * 5, autosave) # time in milliseconds

autosave() 
root.mainloop()

线程解决方案也是可能的:

import threading
import time
import Tkinter

root = Tkinter.Tk()

def autosave():
    while True:
        # do something you want
        time.sleep(60 * 5)

saver = threading.Thread(target=autosave)
saver.start()
root.mainloop()

在离开之前,我使用 sys.exit() 杀死所有 运行 线程和 gui。不确定这样做是否正确。