在tkinter中编辑文本
我把一个叫做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)
在把它传给另一个类之后。
我该怎么修改这个文本小部件呢?我想让它显示“Hello”,而不是“Goodbye”。我到处找过了,能对它做任何事情,除了改变文本。
2 个回答
0
你应该把文本内容存储到一个变量里(比如叫id):然后用下面的代码来修改这个文本:
canvas.itemconfig(your_text_id, text="New Text")
14
你应该使用画布的 itemconfig 方法来修改文本属性。你需要提供一个或多个画布项目的ID。下面是一个简单的示例,演示如何更改一个文本对象的文本:
# 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()