【问题标题】:Is there a way to make a textbox save by itself? [closed]有没有办法让文本框自行保存? [关闭]
【发布时间】:2020-09-26 00:07:28
【问题描述】:

假设我想制作一个代码编辑器,我希望文本框中的内容能够自行保存。

我该怎么做,从哪里开始?

这是我的想法: 我会创建一个函数来保存内容并在永远循环中运行它。但它不会起作用,那我该怎么做。

【问题讨论】:

  • 您可以使用通用小部件after() 方法来安排在给定延迟后调用的函数。回调函数也可以调用它来导致自身被再次调用(永远)。

标签: python tkinter logic tkinter-text


【解决方案1】:

第一步:制作一个保存数据的函数:

def save():
    data = the_text_widget.get("1.0", "end-1c")
    with open("the_filename.txt", "w") as f:
        f.write(data)

接下来,编写一个函数,在某个时间间隔内调用此函数,例如每 10 秒一次:

def autosave():
    save()
    the_text_widget.after(10000, autosave)

最后,调用该函数一次,它将每 10 秒运行一次:

autosave()

这不是唯一的方法,但可以说是最简单的。

【讨论】:

  • 代码 Pez 分配器?你知道这是一个糟糕的问题,一点也不努力。你应该知道得更多。
  • @TomServo:有时人们需要一点动力。 AFAIK 没有关于在此站点上自动保存文本小部件的问题,所以我认为值得回答。
  • 每次按下键盘按钮时绑定函数 AutoSave() 不是更好吗,好处是,1 停止不必要的 AutoSave 调用,2 可以肯定所有文本都会保存,以防文本编辑器在下一个 10 秒间隔之前关闭。
  • @coderoftheday:这取决于你如何定义“更好”。当然还有其他方法可以做到这一点,但对于初学者和爱好级别的文本编辑器来说,这很好用。
猜你喜欢
  • 2018-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多