Python tkinter PhotoImage无法正常工作

qjp7pelc  于 2022-12-30  发布在  Python
关注(0)|答案(3)|浏览(132)

我试图使用tkinter,但这个代码不工作,我想知道是否有人知道为什么谢谢。

from tkinter import *
window = Tk()
window.title("tkinter stuff")
photo1 = PhotoImage("file=hs.gif")
Label(window, image=photo1).grid(row=0,column=0,sticky=W)
window.mainloop()

澄清一下,一个名为“tkinter stuff”的窗口出现了,但是图像没有显示,而且,在我的代码所在的文件夹中有一个名为“hs.gif”的文件。
谢谢你的帮助

nuypyhwy

nuypyhwy1#

您需要移动引号:

photo1 = PhotoImage(file="hs.gif")
ymdaylpp

ymdaylpp2#

下面的代码可以作为你的问题的一个例子,也是一个使用图像的干净的方法。你也可以配置窗口的背景

import Tkinter as tk
from PIL import ImageTk, Image
window = tk.Tk()
window.title("tkinter stuff")
window.geometry("300x300")
window.configure(background='grey')
path = "hs.gif"
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(window, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
window.mainloop()
ej83mcc0

ej83mcc03#

我有问题显示图像与标签小部件太。这似乎是一个错误的垃圾收集器。我发现这个解决方案:
https://blog.furas.pl/python-tkinter-why-label-doesnt-display-image-bug-with-garbage-collector-in-photoimage-GB.html.

import tkinter as tk  # PEP8: `import *` is not preferred

def main(root):
    img = tk.PhotoImage(file="image.png")
    label = tk.Label(image=img)
    label.pack()

    label.img = img  # <-- solution for bug 

if __name__ == "__main__":
    root = tk.Tk()
    main(root)

相关问题