Python Tkinter-将文本插入画布窗口

Python Tkinter-将文本插入画布窗口,python,text,tkinter,tkinter-canvas,Python,Text,Tkinter,Tkinter Canvas,我有一个Tkinter画布,其中填充了文本和画布窗口,或者小部件,它们是使用create_text和create_window方法创建的。我在画布上放置的小部件是文本小部件,我希望在创建和放置它们之后将文本插入其中。如果可能的话,我想不出怎么做。我意识到您可以在创建后使用canvas.itemconfig(tagOrId,cnf)编辑它们,但文本不能以这种方式插入。有解决方案吗?首先,让我们把术语弄清楚:您不是在创建小部件,而是在创建画布项。Tkinter文本小部件和画布文本项之间有很大的区别

我有一个Tkinter画布,其中填充了文本和画布窗口,或者小部件,它们是使用
create_text
create_window
方法创建的。我在画布上放置的小部件是文本小部件,我希望在创建和放置它们之后将文本插入其中。如果可能的话,我想不出怎么做。我意识到您可以在创建后使用
canvas.itemconfig(tagOrId,cnf)
编辑它们,但文本不能以这种方式插入。有解决方案吗?

首先,让我们把术语弄清楚:您不是在创建小部件,而是在创建画布项。Tkinter文本小部件和画布文本项之间有很大的区别

有两种方法可以设置画布文本项的文本。您可以使用设置
text
属性,也可以使用画布的方法在文本项中插入文本

在以下示例中,文本项将显示字符串“this is the new text”:

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)
        canvas = tk.Canvas(self, width=800, height=500)
        canvas.pack(side="top", fill="both", expand=True)
        canvas_id = canvas.create_text(10, 10, anchor="nw")

        canvas.itemconfig(canvas_id, text="this is the text")
        canvas.insert(canvas_id, 12, "new ")

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(side="top", fill="both", expand=True)
    root.mainloop()