cget('image')方法返回pyimage1而非图片名称

1 投票
1 回答
897 浏览
提问于 2025-04-17 17:38

我刚开始学习编程,正在尝试用Python 3.3的tkinter库创建一个应用程序。在这个应用程序中,我使用了带有图片的按钮,并希望根据按钮上图片的不同来执行不同的操作。这是我程序的简化版本:

from tkinter import *
master=Tk()
c_black = PhotoImage(file="c_black.gif")
b=Button(master, image=c_black)
print(b.cget('image'))
master.mainloop()

而不是

c_black

控制台返回

pyimage1

我完全不知道为什么。我已经试了好几个小时了。也许有其他方法可以做到这一点?

1 个回答

0

使用 cget() 这个方法,你只能获取到属性的字符串形式,所以你需要保存对 PhotoImage 对象的引用:

b = Button(...)
b.image = c_black
print(b.image.cget('file'))

撰写回答