python - PhotoImage 未显示与其关联的图像

标签 python image background tkinter

我对 tkinter 很陌生,我注意到当我尝试将图片作为背景添加到窗口时,它不会显示。这是代码。

from tkinter import *

root = Tk()

def cheese():
    root.destroy()

logo = PhotoImage('../Desktop/logothing.gif')
background_label = Label(root, image=logo)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

explanation = """Flaming Arrows whizz over your hair, War rages around you. Suddenly,
it charges into you. A 8 foot tall mechanical beast the enemy have been training for war.
You have no chance but to fight it. You swing your sword as hard as you can...Only to
leave a minor dent on it's armor. With one blow from its club, you fall unconscious."""

w = Label(root, image=logo).pack(side='right')
w1 = Button(root, text = 'Wake Up',command = cheese, fg='blue', font = "Impact 20")
w1.pack(side='bottom')

w2 = Label(root, 
           justify=LEFT, 
           text=explanation,
           compound = CENTER,
           fg="blue", padx=0,font="ComicSansMS 32 bold")
w2.pack(side='left')

最佳答案

您需要使用file指定选项。 PhotoImage(file = "foo.gif")

此外,如 PhotoImage's page on this effbot clone/mirror site 中所述,

You must keep a reference to the image object in your Python program, either by storing it in a global variable, or by attaching it to another object.

from tkinter import *

root = Tk()
def cheese():
    root.destroy()
logo = PhotoImage(file = '../Desktop/logothing.gif')
background_label = Label(root, image=logo)
background_label.image = logo
background_label.place(x=0, y=0, relwidth=1, relheight=1)
explanation = """Flaming Arrows whizz over your hair, War rages around you. Suddenly,
it charges into you. A 8 foot tall mechanical beast the enemy have been training for war.
You have no chance but to fight it. You swing your sword as hard as you can...Only to
leave a minor dent on it's armor. With one blow from its club, you fall unconscious."""
w= Label(root, image=logo).pack(side='right')
w1 = Button(root, text = 'Wake Up',command = cheese, fg='blue', font = "Impact 20")
w1.pack(side='bottom')
         
w2 = Label(root, 
           justify=LEFT, 
           text=explanation,
           compound = CENTER,
           fg="blue", padx=0,font="ComicSansMS 32 bold")
w2.pack(side='left')

关于python - PhotoImage 未显示与其关联的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28008312/

相关文章:

css - 从 div 制作背景图像并使其自动调整大小

Android:删除启动画面前显示的空白屏幕

python - 在超出范围的索引处插入列表 - 行为类似于追加

python - 为python flask Web应用程序构建Docker镜像。图片未出现或未找到requirements.txt

flutter - 有没有办法在 Flutter 中控制系统音乐?

html - 我应该使用什么字体图标或 Sprite 图像?

html - 图片之间有多余的空白吗?

python - 如何将写节点附加到读节点?

python - 如何在Python中的YAML文件中设置logging.handlers.SysLogHandler的输出

Python 3 : Output R, G,B 到 CSV - 索引错误:图像索引超出范围