Tkinter背景图片

时间:2019-03-24 14:37:26

标签: python-3.x tkinter

我无法使用以下代码将图像显示为GUI窗口的背景,有什么想法吗?我已经多次更改文件扩展名类型。

from tkinter import *
from PIL import ImageTk, Image

window = Tk()    
window.title("My Application")

lbl = Label(window, text="Hello", font=("arial italic", 25))
lbl.grid(column=0, row=0)


backgroundImage = PhotoImage(file = "C:\\Users\\User 
Person\\Desktop\\months.gif")

label = Label(master=window,
          image = backgroundImage,
          text='This is a test for stackflow',
          height = 2
          )
label.place(x=0, y=0, relwidth=1, relheight=1)

window.mainloop()

1 个答案:

答案 0 :(得分:0)

我能够使用您的代码显示图像,但是我使用了原始字符串来定义gif图像的路径。您应该这样使用它:

backgroundImage = PhotoImage(file = r"C:\Users\User Person\Desktop\months.gif")

请注意,r" "会使图像路径成为原始字符串,因此您无需转义\

我还定义了一个窗口几何:

 window.title("My Application")
 window.geometry("320x240")

更新

根据评论,您还可以使用PIL库首先打开图像以修复错误Tkinter error: Couldn't recognize data in image file

from PIL import ImageTk, Image
backgroundImage = ImageTk.PhotoImage(Image.open(r"C:\Users\User Person\Desktop\months.gif")) 

注意

您还必须验证这是有效的gif文件。尝试在Windows Picture Viewer或类似软件中打开文件。另外,您提到更改了文件扩展名,这可能会使文件不稳定并使其无效。因此,请确保使用原始文件扩展名。如果您想将文件转换为其他格式,请为此使用专用软件或编写一个简单的Python脚本(尽管我从未尝试过此选项),该脚本可以执行此转换而不会破坏文件。