在 Python 的 Tkinter 界面中,使用 grid 布局添加填充满整个窗口的 PNG 格式背景图片时,可能会遇到 'TclError: image 'pyimage10' doesn't exist' 的错误。这个错误通常是由于图像对象没有正确地存储在标签中引起的。

以下步骤可以解决这个问题:

  1. 将图像对象存储在全局变量中,以便它不会在函数结束时被删除。
  2. 删除 bg_label.image = bg_img 这行代码,因为它实际上不需要。
  3. 将标签的行和列配置为 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()

希望这可以解决您的问题。

Tkinter 背景图片无法显示:解决 'TclError: image

原文地址: https://www.cveoy.top/t/topic/ovnI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录