python - Python,通过字符串更改 var
问题描述
我有多个type1 = Label(image=type_none)
并获得一个列表['Ground', 'Rock', 'Water']
并想将其更改为
type1 = Label(image=type_Ground)
type2 = Label(image=type_Rock)
等type_Rock
已经定义,并包含我要显示的数据。
所以我正在寻找一种动态更改变量的方法。像这样的东西。
for i in range(0, len(type_list)):
type{i} = Label(image=type_{type_list[i]})
最后,它应该更新标签 1 到 X 的图像。我仍然是初学者,无法找到执行此操作的方法。我会发布完整的代码,但它又大又乱。如果您需要知道,我必须将图像定义为self.type_ground = ImageTk.PhotoImage(Image.open("img/Ground.png").resize(self.type_size))
感谢您花时间阅读我的问题 :)
编辑:感谢您的回答,我最初查看了 eval(),它运行良好,但我遇到了一些问题,因为你们都说这是不好的做法,我现在使用包含变量的 dicts 和列表。
可以像这样轻松创建图像type_img = {"Scaning": ImageTk.PhotoImage(Image.open("img/Scaning.png").resize(type_size))}
:
但是Tk.Label
对象,我需要处理不同的。首先我创建 Label wtype0 = Label(master, image=type_img["None"])
,将其放在 Tkinter 中,然后将其存储在列表中type_tklist = [self.wtype0]
然后,当我想更改图像时,我可以简单地
for i in range(0, len(weak1)):
self.type_tklist[i].configure(image=self.type_img[weak1[i]])
self.type_tklist[i].image = self.type_img[weak1[i]]
解决方案
推荐阅读
- sql - 选择子句中的 if 语句(postgresql)
- python - 将随机文件复制到另一个位置(python)
- node.js - nodejs teradata 在结果集中返回“nodeJava_java_math_BigDecimal{}”而不是十进制值?
- javascript - Javascript 使用 onClick 事件中的值向元素添加类
- php - Cronjob 没有足够的时间来编写 php 脚本?
- mysql - SQL 查询查找和修剪
- cesium - 如何在铯中使用 Material.fromType
- regex - sed 正则表达式中的“%%”是什么意思?
- c++ - 获取模板参数的成员变量值列表
- python - Python MySQL 查询输出