如何在Tkinter文本控件中撤销/重做操作?

2 投票
1 回答
1144 浏览
提问于 2025-04-16 00:32

我想在Python中实现“撤销”(Control-Z)和“重做”(Shift-Control-Z)这两个功能。有没有人知道怎么做?

另外,我还需要选中整个文本小部件的内容,有人知道该怎么操作吗?

1 个回答

2

关于撤销机制,可以查看 Idle 中的 UndoDelegator.py 文件,配合 EditorWindow.py 一起使用。

如果你想选中一个文本框里的所有内容,可以这样做:

# remove previous selection, if any
text_widget.tag_remove(Tkinter.SEL, "1.0", Tkinter.END)
# select all
text_widget.tag_add(Tkinter.SEL, "1.0", Tkinter.END)
# place cursor
text_widget.mark_set(Tkinter.INSERT, Tkinter.END)

撰写回答