Tkinter如何获取按钮图片地址

时间:2018-12-27 12:44:06

标签: python tkinter python-idle

我正在为一个学校项目编写程序,现在我需要检查按钮上的图像,以便可以通过if命令运行它,如下所示:

root=Tk()

flag = PhotoImage(file='flag.png')

box = PhotoImage(file='box.png')

def function(event):
    if(button.cget('image')==flag):
        button.config(image=box)
    else:
        button.config(image=flag)


button=Button(root)
button.config(image=box)
button.bind('<ButtonRelease>', function)
button.pack()
root.mainloop()

我希望每次单击按钮时,它都会在标志和框之间更改图像,但相反,它只是将图像更改为在我第一次单击时进行标记,而对于其余的单击无响应

2 个答案:

答案 0 :(得分:1)

您只需要以if(button.cget('image')==str(flag)):的身份进行测试(请注意在图像上添加str())。 image选项只是一个字符串,其中包含Tcl / Tk环境中图像对象的自动生成的名称。 Python图片对象会转换为该字符串,但不包含实现与字符串比较所需的代码,因此您需要使此转换明确。

答案 1 :(得分:0)

尝试此代码

root=Tk()

flag = PhotoImage(file='Denaro.gif')

box = PhotoImage(file='Andre.gif')

def function(event):
    if(button.cget('image')=='pyimage1'):
        button.config(image=box)
    else:
        button.config(image=flag)


button=Button(root)
button.config(image=box)
button.bind('<ButtonRelease>', function)
button.pack()
root.mainloop()