Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将Tkinter文本小部件的撤消/重做历史复制到另一个小部件中_Python_Python 3.x_Tkinter_Widget_Tk - Fatal编程技术网

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

Python 如何将Tkinter文本小部件的撤消/重做历史复制到另一个小部件中,python,python-3.x,tkinter,widget,tk,Python,Python 3.x,Tkinter,Widget,Tk,我有一个基于Tkinter的GUI程序,使用Python3.6.5 我有一个临时窗口,里面有一些文本小部件(和其他东西)。当临时窗口关闭时,整个窗口将被破坏。但是,我希望在下次打开(和重新构建)时保留撤消/重做历史记录以及某些特定文本小部件中的任何文本。以另一种方式重新编程当然是可能的,但考虑到事情是如何设置的,这可能是一项不必要的大量工作(尽管如果您有想法认为无论设置如何都应该工作,请随时告诉我)。更改设置可能很容易引入错误 两个具有不同窗口小部件的不同窗口需要在一些类似窗口小部件之间共享数据

我有一个基于Tkinter的GUI程序,使用Python3.6.5

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

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

无论如何,我想知道,文本小部件的撤销/重做历史记录存储在哪里?如果我能在窗口关闭之前复制它,并将它放在新构建的小部件中(无论它构建在哪个窗口上),那就太好了

我之所以添加tk标记,是因为我查看了tkinter的Python源代码,但没有发现任何特别有用的东西(所以使用TCL或类似工具的人可能会知道)


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

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

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