【问题标题】:Write text to tkinter text widget redo将文本写入 tkinter 文本小部件重做
【发布时间】:2021-06-16 11:40:39
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python-3.x tkinter undo-redo


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      相关资源
      最近更新 更多