我有一个 Tkinter Canvas ,其中填充了文本和 Canvas 窗口或小部件,使用 create_text
和 create_window
方法创建。我放置在 Canvas 上的小部件是文本小部件,我想在它们创建并放置后向其中插入文本。如果可能的话,我不知道该怎么做。我知道您可以在创建后使用 canvas.itemconfig(tagOrId, cnf)
对其进行编辑,但无法以这种方式插入文本。有解决办法吗?
最佳答案
首先,让我们弄清楚术语:您不是在创建小部件,而是在创建 Canvas 项目。 Tkinter 文本小部件和 Canvas 文本项之间存在很大差异。
有两种方法可以设置 Canvas 文本项的文本。您可以使用 itemconfigure设置 text
属性,你可以使用 insert在文本项中插入文本的 Canvas 方法。
在下面的示例中,文本项将显示字符串“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()
关于python - Tkinter - 将文本插入 Canvas 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423959/