python 图像无法在Tkinter按钮上显示[重复]

plupiseo  于 2023-06-28  发布在  Python
关注(0)|答案(2)|浏览(128)

此问题已在此处有答案

Why does Tkinter image not show up if created in a function?(5个答案)
7小时前关闭
由于某种原因,我试图在这个按钮上的图像将不会显示出来,虽然我认为图像确实存在时,代码运行,因为按钮大小调整,但不显示图像。我曾认为这是由于图像属性,但已尝试了许多其他图像不工作!我是不是错过了一些很明显的东西,而且很愚蠢?PS按钮不会调用它的功能时,‘goast图像‘在那里。

settingimage = PhotoImage(file="icons8-settings-50 (1).png")

settingsbut = Button(window, command=settings, image=settingimage)
settingsbut.place(x=10, y=10)

我已经多次尝试调整按钮的大小,尝试使用“复合”,使用不同的图像,我已经尝试使用一个标签作为一个假人的图像坐在,而按钮没有。所有这些都没有导致按钮上显示图像。虽然没有错误发生和按钮大小的图像导致我认为它的视觉。

vd8tlhqk

vd8tlhqk1#

我有两个担忧:
1.为什么settingsbut行缩进?
1.是你的形象,即。icons8-settings-50 (1).png与Python脚本放在同一个文件中?
如果这些不是问题的原因,我建议你分享一个更大的代码部分沿着你的输出/错误的SS。

qv7cva1a

qv7cva1a2#

如果它在一个函数中,那么就这样做。

def functionName():
    global settingimage
    ...
    settingimage = PhotoImage(file="icons8-settings-50 (1).png")
    settingsbut = Button(window, command=settings, image=settingimage)
    settingsbut.place(x=10, y=10)
    ...

问题是Python的垃圾收集器收集settingimage,因为settingimage没有其他用途。但是添加global可以消除这一点。
有关详细信息,您可以查看此post或此Stack Overflow Post

相关问题