如何组合两个字符串来描述tree.insert的属性?

2024-10-05 14:30:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用tKinter创建一个gui,第一次使用python。 我的gui的一部分是一个treeview,treeview中的节点附带了图像。 我做了一个函数向树视图添加新节点。 我想根据节点的母节点向新节点添加一个图像。 在本例中,变量'curItem'以字符串形式返回母亲,在本例中为“test”。 我想将字符串“photo戡”和“test”组合起来,并在“tree.insert”代码中使用它。 但是为了让它工作,我必须把字符串转换成其他的东西,但是我不知道该怎么做

这可能是一个非常基本的问题,但我至今找不到答案。 相关规范的一部分:

photo_test = PhotoImage(file="resources/test.png")

def add():
    curItem = tree.selection()[0]    #returns "test"
    img = "photo_" + curItem
    tree.insert(curItem, 'end', text='new', image=img)    #doesn't work
    tree.insert(curItem, 'end', text='new', image=photo_test)    #works

Tags: 字符串texttest图像treeimgnew节点
1条回答
网友
1楼 · 发布于 2024-10-05 14:30:42

您正在尝试将图像设置为字符串“photo\u test”。尝试将实际照片存储在dict中,并通过字符串访问它,类似于这样

photos = dict()
photos["photo_test"] = PhotoImage(file="resources/test.png")

def add():
    curItem = tree.selection()[0]    #returns "test"
    img = "photo_" + curItem
    tree.insert(curItem, 'end', text='new', image=photos[img])

不过,您似乎误解了变量和字符串之间的区别。字符串只是代码中的文本,而不是实际的代码,因此不能以字符串形式传递变量名并期望代码读取该值"photo_test"photo_test不同

相关问题 更多 >