python - Tkinter - 将文本插入 Canvas 窗口

标签 python text tkinter tkinter-canvas

我有一个 Tkinter Canvas ,其中填充了文本和 Canvas 窗口或小部件,使用 create_textcreate_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/

相关文章:

css - 当我在其中放置文本时,DIV 会移动

c++ - 从 Spy++ 窗口获取文本

python - 动态调整 Tkinter Canvas 文本

python - 如何在 python 中为数据框添加另一个类似标签的列?

python - 凯拉斯CNN : Add text as additional input besides image to CNN

python - 对这个数据帧进行下采样我哪里出了问题?

python - 从 values() 或 values_list() 中排除字段

objective-c - UITextView 调整宽度以适合文本

python - 在另一个类函数中使用一个类的条目

python - 开罗与 tkinter?