我是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")
file
PhotoImage(file = "foo.gif")
另外,如effbot在PhotoImage的页面中所述,
您必须在Python程序中保留对图像对象的引用,方法是将其存储在全局变量中,或者将其附加到另一个对象。
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')