鱼C论坛

 找回密码
 立即注册
查看: 1736|回复: 4

[已解决]Python Tkinter 获取当前根页面下所有组件的名称

[复制链接]
发表于 2022-4-5 18:20:41 | 显示全部楼层 |阅读模式
25鱼币
比如说我有一个窗口,里面有 2 个 Label 组件,我需要将它们的名字通过一行代码来都打印出来,这个效果:
  1. import tkinter as tk

  2. root = tk.Tk()

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

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

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

  8. tk.mainloop()
复制代码


  1. 输出:
  2. first
  3. second
复制代码


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

大佬们,帮帮我!

答对者,必重"金"感谢!!!
兄弟们,行动起来吧!!!

   

最佳答案
2022-4-5 18:20:42
  1. import tkinter as tk

  2. root = tk.Tk()

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

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

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

  12. tk.mainloop()
复制代码

最佳答案

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-5 18:20:42 | 显示全部楼层    本楼为最佳答案   
  1. import tkinter as tk

  2. root = tk.Tk()

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

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

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

  12. tk.mainloop()
复制代码

评分

参与人数 1荣誉 +5 鱼币 +4 贡献 +3 收起 理由
python爱好者. + 5 + 4 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 18:34:35 | 显示全部楼层

厉害,怎么搜索的,我搜了半天也没搜到,膜拜大佬!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-5 18:36:09 | 显示全部楼层
python爱好者. 发表于 2022-4-5 18:34
厉害,怎么搜索的,我搜了半天也没搜到,膜拜大佬!


之前学的

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

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

评分

参与人数 1荣誉 +4 收起 理由
python爱好者. + 4 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-5 18:37:16 | 显示全部楼层
isdkz 发表于 2022-4-5 18:36
之前学的

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

谢谢大佬普及知识!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表