【问题标题】:How to copy the undo/redo history of a Tkinter Text widget into another如何将 Tkinter Text 小部件的撤消/重做历史复制到另一个
【发布时间】:2018-09-11 23:25:20
【问题描述】:

我有一个带有基于 Tkinter 的 GUI 的程序,使用 Python 3.6.5。

我有一个临时窗口,里面有一些文本小部件(和其他东西)。当临时窗口关闭时,整个窗口都会被破坏。但是,我想在下次打开(并重新构建)时保留撤消/重做历史和某些特定文本小部件中的任何文本。以另一种方式重新编程当然是可能的,但考虑到事物的设置方式,可能是不必要的大量工作(尽管如果您有想法认为无论设置如何都应该工作,请随时告诉我)。更改设置可能很容易引入错误。

具有不同小部件的两个不同窗口需要在一些相似的小部件之间共享数据(我想扩展它以包括撤消重做历史)。我相信不同的父母是窗户被破坏的部分原因,但我可能是错的(可能还有其他原因)。

无论如何,我想知道,文本小部件的撤消/重做历史存储在哪里?如果我可以在窗口关闭之前以某种方式复制它并将其放入新构建的小部件(无论它构建在哪个窗口),那就太好了。

我添加了 tk 标签,因为我查看了 tkinter 的 Python 源代码,并没有发现任何特别有用的东西(所以也许那些使用 TCL 之类的人会知道)。

我意识到可能无法访问存储历史记录的变量,但我认为值得一问,以防万一。

【问题讨论】:

    标签: python python-3.x tkinter widget tk


    【解决方案1】:

    不,您不能保存文本小部件的撤消/重做历史、销毁小部件,然后将历史重新应用到新小部件。

    最好的解决方案是销毁小部件。只需隐藏它然后重新显示它,而不是销毁它并重新创建它。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2021-07-29
      • 2012-05-20
      • 2017-11-30
      相关资源
      最近更新 更多