我正在为一个学校项目编写程序,现在我需要检查按钮上的图像,以便可以通过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()
我希望每次单击按钮时,它都会在标志和框之间更改图像,但相反,它只是将图像更改为在我第一次单击时进行标记,而对于其余的单击无响应
答案 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()