有没有办法清除Tkinter中文本小部件的撤消/重做堆栈?

2024-10-02 10:32:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Tkinter文本小部件构建一个专门的文本编辑器。一些要编辑的文件相当大(300K-500K行)。编辑器中的某些功能会影响整个文件(例如,根据内容标记某些行等)。我使用autoseparators来处理这些情况,其中撤销实际上会将整个文本小部件内容重置为以前的状态。换句话说,我获取整个文本小部件内容,对其进行处理,然后删除现有的文本小部件内容,然后插入编辑的内容。问题是,内存使用可能是一个潜在的问题。例如,当执行文档范围的功能时,295K行文件(约6.8MB)可能会导致内存增加约25MB(不确定3-4X来自何处)。在会话期间,用户可能会执行许多文档范围的功能

我至少希望在用户打开一个新文件或只是创建一个新的空白文件时“清除”撤消/重做堆栈。我知道有很多关于在文件之间保持撤消/重做的争论,但对于我的用户社区来说,这不是一个问题。清除堆栈不会影响其工作流

我确实尝试过关闭文本小部件撤销(通过配置),然后再打开它,但似乎没有任何效果

如果您能就此问题提出任何想法,或就如何更好地处理此类情况提供指导,我将不胜感激。谢谢


Tags: 文件内存用户文档标记文本功能编辑

热门问题