我正在开发一个程序,我在for循环中创建一些小部件。所以我需要动态地获取它们的名称。我设置的是当鼠标进入框架时。其中包含两个文本标签小部件。我导致一个函数运行。我想改变名称为noteName的小部件的背景颜色。但我似乎已陷入停顿点,我无法弄明白。我在网上搜索但找不到多少。那么这里的任何人都知道如何获取小部件的名称吗?
代码:
def get_children_hover(event):
for widgets in event.widget.winfo_children():
#This is here where I can not seem to figure out how to get the widgets name.
有人能把我推向正确的方向。
答案 0 :(得分:1)
winfo_children()是正确的选择,但你错了。它是父窗口小部件的方法。 (即根,框架,帆布等..)
此外:
如果订单无关紧要,您可以从中获取相同的信息 children widget属性(它是映射Tk小部件名称的字典 到widget实例,所以widget.children.values()给你一个列表 实例)。
简单的例子:
import tkinter as tk
def foo():
print ("Frame:", frm.winfo_children())
print ("Root:", root.winfo_children())
print ("children_values:", root.children.values())
root = tk.Tk()
frm = tk.Frame(root)
tk.Label(root,text="foo").pack()
btn = tk.Button(frm,text="FOOO",command=foo)
frm.pack()
btn.pack()
root.mainloop()
关于您的代码:
def get_children_hover(event):
for widgets in root.winfo_children(): #assuming your Tk() instance named root