python爱好者. 发表于 2022-4-5 18:20:41

Python Tkinter 获取当前根页面下所有组件的名称

比如说我有一个窗口,里面有 2 个 Label 组件,我需要将它们的名字通过一行代码来都打印出来,这个效果:
import tkinter as tk

root = tk.Tk()

first = tk.Label(root,text = "first")
first.pack()

second = tk.Label(root,text = "second")
second.pack()

#这里加一些代码,是程序能够输出 first,second 这两个变量名

tk.mainloop()

输出:
first
second

不知道该用什么方法才能获取这些变量,大佬们,帮帮我!

大佬们,帮帮我!
{:10_254:} {:10_254:} {:10_254:} {:10_254:}
答对者,必重"金"感谢!!!
兄弟们,行动起来吧!!!
{:10_257:} {:10_297:} {:10_281:} {:10_298:}
   

isdkz 发表于 2022-4-5 18:20:42

import tkinter as tk

root = tk.Tk()

first = tk.Label(root,text = "first")
first.pack()

second = tk.Label(root,text = "second")
second.pack()

# 加入的代码
for i in dir():
    if isinstance(eval(i), tk.Label):
      print(i)
# 加入的代码

tk.mainloop()

python爱好者. 发表于 2022-4-5 18:34:35

isdkz 发表于 2022-4-5 18:29


厉害,怎么搜索的,我搜了半天也没搜到,膜拜大佬!

isdkz 发表于 2022-4-5 18:36:09

python爱好者. 发表于 2022-4-5 18:34
厉害,怎么搜索的,我搜了半天也没搜到,膜拜大佬!

之前学的{:5_109:}

查看命名空间一共有三个函数都可以用,它们分别是 globals(),locals(),dir(),

globals 和 locals 返回的是一个字典,所以我更喜欢用 dir

python爱好者. 发表于 2022-4-5 18:37:16

isdkz 发表于 2022-4-5 18:36
之前学的

查看命名空间一共有三个函数都可以用,它们分别是 globals(),locals(),dir() ...

谢谢大佬普及知识!
页: [1]
查看完整版本: Python Tkinter 获取当前根页面下所有组件的名称