我有一个 Tkinter 画布,其中填充了使用create_text
和create_window
方法创建的文本和画布窗口或小部件。我放置在画布上的小部件是文本小部件,我想在它们被创建和放置后插入文本。如果可能的话,我不知道该怎么做。我意识到您可以在创建后使用 编辑它们canvas.itemconfig(tagOrId, cnf)
,但不能以这种方式插入文本。有针对这个的解决方法吗?
问问题
30391 次
1 回答
18
首先,让我们弄清楚术语:您不是在创建小部件,而是在创建画布项目。Tkinter 文本小部件和画布文本项之间存在很大差异。
有两种方法可以设置画布文本项的文本。可以使用itemconfigure设置text
属性,也可以使用画布的insert方法在文本项中插入文本。
在以下示例中,文本项将显示字符串“这是新文本”:
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()
于 2013-01-20T15:53:21.280 回答