如何将Tkinter Text小部件的撤消/重做历史复制到另一个

时间:2018-09-11 23:25:21

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

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

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

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

无论如何,我想知道,文本小部件的撤消/重做历史记录存储在哪里?如果我能以某种方式在关闭窗口之前复制该代码并将其放在新构建的小部件(无论构建在哪个窗口中)上,那将是很棒的。

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

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

1 个答案:

答案 0 :(得分:1)

否,您无法保存文本小部件的撤消/重做历史记录,销毁小部件,然后将历史记录重新应用于新的小部件。

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