问题描述
我有一个 tkinter 文本小部件,我使用以下代码添加了撤消/重做功能:
self.text = tk.Text(self,maxundo=-1,autoseparators=1,undo=True)
然后我在其中插入了一些字符串:
self.text.insert('insert','Text')
我按下了 Command+Z 和 Command+Shift+Z,
我发现我只能撤消或重做通过按下键盘输入的文本,而不能撤消或重做 text.insert
ed 文本。
所以,我想知道如何让文本小部件撤消使用 insert
方法插入的文本。
感谢您的帮助!
解决方法
您应该在插入字符串前后添加编辑分隔符。
self.text.edit_separator()
self.text.insert('insert','Text')
self.text.edit_separator()
编辑分隔符让 tkinter 知道文本的逻辑块是什么。添加分隔符告诉 tkinter,就撤消而言,您的插入命令应该被视为一个单元。