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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Tkinter Text小部件的撤消/重做历史记录复制到另一个小部件中相关的知识,希望对你有一定的参考价值。

我使用Python 3.6.5获得了一个基于Tkinter的GUI程序。

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

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

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

我正在添加tk标签,因为我查看了tkinter的Python源代码,并没有找到任何特别有用的东西(所以也许那些使用TCL或者其他人会知道)。

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

答案

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

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

以上是关于如何将Tkinter Text小部件的撤消/重做历史记录复制到另一个小部件中的主要内容,如果未能解决你的问题,请参考以下文章

如何从Tkinter,Python中的Text小部件中移除焦点

如何将标准输出重定向到 Tkinter Text 小部件

如何在 tkinter Text 小部件中突出显示文本

如何在字体更改时停止 Tkinter Text 小部件调整大小?

如何强制 tkinter 文本小部件保持在一行

从 Tkinter Text 小部件中获取所有内容 [重复]