访问 canvas.create_window 内小部件的属性
access properties of widget inside canvas.create_window
我遇到了以下问题。我正在制作一个 tkinter GUI,我需要访问 canvas、Canvas.create_window 小部件内的一个对象,其中包含一些其他对象。例如:
import Tkinter as tk
class Demo:
def __init__(self, master):
self.canvas = tk.Canvas()
self.canvas.pack(fill="both", expand=True)
f = tk.Frame(self.canvas)
f.pack()
self.container = self.canvas.create_window(50,50, window = f)
l = tk.Label(f, text='abc')
e = tk.Entry(f, width = 5)
l.pack()
e.pack()
if __name__ == '__main__':
root = tk.Tk()
app = Demo(root)
root.mainloop()
我正在尝试编辑 l 标签的文本(当前为 'abc'),当其他事件被触发时。我想我需要使用 canvas.itemconfig,但我找不到将对标签的正确引用传递给此函数的方法。有任何想法吗?
谢谢
您不需要使用 itemconfigure
-- 这仅用于配置 canvas 项。您的标签不是 canvas 项目,它只是一个普通的 tkinter 小部件,您可以像访问任何其他小部件一样访问它。保存引用,然后使用引用调用方法。
例如:
class Demo:
def __init__(...):
...
self.l = tk.Label(f, text='abc')
...
def some_event_handler(event):
self.l.configure(text="xyz")
我遇到了以下问题。我正在制作一个 tkinter GUI,我需要访问 canvas、Canvas.create_window 小部件内的一个对象,其中包含一些其他对象。例如:
import Tkinter as tk
class Demo:
def __init__(self, master):
self.canvas = tk.Canvas()
self.canvas.pack(fill="both", expand=True)
f = tk.Frame(self.canvas)
f.pack()
self.container = self.canvas.create_window(50,50, window = f)
l = tk.Label(f, text='abc')
e = tk.Entry(f, width = 5)
l.pack()
e.pack()
if __name__ == '__main__':
root = tk.Tk()
app = Demo(root)
root.mainloop()
我正在尝试编辑 l 标签的文本(当前为 'abc'),当其他事件被触发时。我想我需要使用 canvas.itemconfig,但我找不到将对标签的正确引用传递给此函数的方法。有任何想法吗? 谢谢
您不需要使用 itemconfigure
-- 这仅用于配置 canvas 项。您的标签不是 canvas 项目,它只是一个普通的 tkinter 小部件,您可以像访问任何其他小部件一样访问它。保存引用,然后使用引用调用方法。
例如:
class Demo:
def __init__(...):
...
self.l = tk.Label(f, text='abc')
...
def some_event_handler(event):
self.l.configure(text="xyz")