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

时间:2017-10-16 03:49:12

标签: python tkinter treeview

我正在使用tKinter创建一个gui,这是第一次使用python。 我的gui的一部分是树视图,树视图中的节点附有图像。 我创建了一个向树视图添加新节点的功能。 我想基于节点的母亲将图像添加到新节点。 在这种情况下,变量' curItem'将母亲作为一个字符串返回," 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

1 个答案:

答案 0 :(得分:0)

您正在尝试将图片设置为字符串' photo_test'。尝试将实际照片存储在字典中,然后通过字符串访问它,就像这样。

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不同。