Tkinter 背景图片无法显示:解决 'TclError: image "pyimage10" doesn't exist' 错误
在 Python 的 Tkinter 界面中,使用 grid 布局添加填充满整个窗口的 PNG 格式背景图片时,可能会遇到 'TclError: image 'pyimage10' doesn't exist' 的错误。这个错误通常是由于图像对象没有正确地存储在标签中引起的。
以下步骤可以解决这个问题:
- 将图像对象存储在全局变量中,以便它不会在函数结束时被删除。
- 删除
bg_label.image = bg_img这行代码,因为它实际上不需要。 - 将标签的行和列配置为
row=0, column=0,并将sticky参数设置为 'nsew',以使标签填充整个窗口。
以下是更新后的代码:
import tkinter as tk
from PIL import ImageTk, Image
root = tk.Tk()
root.geometry('600x400')
# 加载背景图片
bg_img = ImageTk.PhotoImage(Image.open('数据科学.png'))
bg_label = tk.Label(root, image=bg_img)
bg_label.grid(row=0, column=0, sticky='nsew')
# 存储图像对象
bg_label.image = bg_img
root.mainloop()
希望这可以解决您的问题。
原文地址: https://www.cveoy.top/t/topic/ovnI 著作权归作者所有。请勿转载和采集!