将文本写入 tkinter 文本小部件重做

问题描述

我有一个 tkinter 文本小部件,我使用以下代码添加了撤消/重做功能

self.text = tk.Text(self,maxundo=-1,autoseparators=1,undo=True)

然后我在其中插入了一些字符串:

self.text.insert('insert','Text')

我按下了 Command+ZCommand+Shift+Z
我发现我只能撤消或重做通过按下键盘输入的文本,而不能撤消或重做 text.inserted 文本。
所以,我想知道如何让文本小部件撤消使用 insert 方法插入的文本。
感谢您的帮助!

解决方法

您应该在插入字符串前后添加编辑分隔符。

self.text.edit_separator()
self.text.insert('insert','Text')
self.text.edit_separator()

编辑分隔符让 tkinter 知道文本的逻辑块是什么。添加分隔符告诉 tkinter,就撤消而言,您的插入命令应该被视为一个单元。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...