按下按钮时如何在 tKinter 中修改选定的文本小部件?

How to modify a selected text widget in tKinter when pressing a button?

我有一个使用文本和按钮小部件的程序。我希望它在我按下按钮时在文本小部件中插入一个字符串,但我不知道该怎么做。谁能帮帮我?

图形用户界面有键盘焦点(或简称焦点)的概念。具有焦点的小部件将是获取键盘事件的小部件。通常在任何时候只能有一个具有键盘焦点的小部件。大多数情况下,焦点是自动处理的。例如,如果您单击文本小部件或条目小部件,该小部件将获得焦点。

你的问题的答案是调用 tkinter 的 focus_get 方法来获取具有键盘焦点的小部件。然后,您可以调用 insert 方法将文本插入该小部件。

下面是一个简单的例子。单击任何文本小部件,然后单击按钮,然后单击字符串“Hello!”将插入到具有焦点的文本小部件中。

import tkinter as tk

def insert_hello():
    widget = root.focus_get()
    widget.insert("end", "Hello!")

root = tk.Tk()
button = tk.Button(root, text="Hello", command=insert_hello)
button.pack(side="top")
for i in range(3):
    text = tk.Text(root, width=40, height=4)
    text.pack(side="top", fill="both", expand=True)

root.mainloop()