6

create_textとメソッドを使用して作成された、テキストウィンドウとキャンバスウィンドウ、またはウィジェットが配置されたTkinterキャンバスがありcreate_windowます。キャンバスに配置するウィジェットはテキストウィジェットであり、作成して配置した後にテキストを挿入したいと思います。それが可能であるとしても、私はこれを行う方法を理解することはできません。を使用して作成後に編集canvas.itemconfig(tagOrId, cnf)できることはわかっていますが、テキストをそのように挿入することはできません。これに対する解決策はありますか?

4

1 に答える 1

18

まず、用語をはっきりさせましょう。ウィジェットを作成するのではなく、キャンバス アイテムを作成します。Tkinter テキスト ウィジェットとキャンバス テキスト アイテムには大きな違いがあります。

キャンバス テキスト アイテムのテキストを設定するには、2 つの方法があります。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()
于 2013-01-20T15:53:21.280 に答える