Tkinter - 将文本插入画布窗口

6
我有一个使用Tkinter创建的画布,其中包含使用create_textcreate_window方法创建的窗口或小部件(widgets)。我放置在画布上的小部件是文本小部件,我想在它们被创建和放置后向它们中插入文本。我无法弄清楚如何做到这一点,即使它是可行的。我认识到可以使用canvas.itemconfig(tagOrId, cnf)在创建后编辑它们,但不能通过这种方式插入文本。是否有解决方案?
1个回答

18

首先,让我们明确术语:您不是在创建小部件,而是在创建画布项目。Tkinter文本小部件和画布文本项目之间存在很大的区别。

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

在以下示例中,文本项将显示字符串 "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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接