【问题标题】:Tkinter Background ImageTkinter 背景图像
【发布时间】:2019-03-24 14:37:26
【问题描述】:

我无法使用以下代码将图像显示为我的 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()

【问题讨论】:

  • 运行此代码时会发生什么? “我不能”是什么意思?
  • “无法识别图像文件中的数据”是我得到的错误。
  • 该错误通常意味着它实际上不是 .gif 文件。您没有任何机会将 .png 或 .jpg 文件之类的文件重命名,对吗?
  • @Water_Fox,您也可以使用 PIL 库,首先打开图像文件。我刚刚在下面更新了我的答案。

标签: python-3.x tkinter


【解决方案1】:

我可以使用您的代码显示图像,但我使用原始字符串来定义 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 图片查看器或类似软件中打开文件。另外,您提到您更改了文件扩展名,这可能会使文件不稳定并使其无效。因此,请确保使用原始文件扩展名。如果您想将文件转换为其他格式,请为此使用专门的软件或编写一个简单的 Python 脚本(尽管我从未尝试过此选项),它可以在不破坏文件的情况下执行此转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多