3

だから私は create_text 変数を "text1" に渡しました

text1 = UseCanvas(self.window, "text", width = 100, height = 100, text = "Goodbye")

使用:

self.create_text(20,25 width=100,  anchor="center", text =self.text, tags= self.tag1)

別のクラスに渡した後。

そのテキスト ウィジェットを編集するにはどうすればよいですか? 「さようなら」ではなく「こんにちは」と言ってほしい。私はすべてを見てきましたが、テキストを変更することを除いて、何でもやりたいことができます。

4

1 に答える 1

13

テキスト属性を変更するには、キャンバスのitemconfigメソッドを使用する必要があります。1 つ以上のキャンバス アイテムの ID を指定する必要があります。以下は、1 つのテキスト オブジェクトのテキストを変更できる小さな実用的な例です。

# use 'tkinter' instead of 'Tkinter' if using python 3.x
import Tkinter as tk 

class Example(tk.Frame):
    def __init__(self, *args, **kwargs):
        tk.Frame.__init__(self, *args, **kwargs)

        self.button = tk.Button(self, text="Change text", command=self.on_change_text)
        self.canvas = tk.Canvas(self, width=400, height=400)

        self.button.pack(side="top", anchor="w")
        self.canvas.pack(side="top", fill="both", expand=True)

        # every canvas object gets a unique id, which can be used later
        # to change the object. 
        self.text_id = self.canvas.create_text(10,10, anchor="nw", text="Hello, world")

    def on_change_text(self):
        self.canvas.itemconfig(self.text_id, text="Goodbye, world")

if __name__ == "__main__":
    root = tk.Tk()
    view = Example(root)
    view.pack(side="top", fill="both", expand=True)
    root.mainloop()
于 2013-03-04T02:06:09.003 に答える