Tkinter 背景图片无法加载

Tkinter Background Image Won't Load

我正在尝试创建一个 class 名为 Game 的游戏,一旦调用它就已经具有背景图像等属性。问题是 Tkinter 不会用下面的代码加载背景图片,我不知道为什么。

class Game:
    def __init__(self):
        self.canvas = tkinter.Canvas(root, height=600, width=600)
        root.title('Hangman')
        root.minsize(600, 600)
        root.maxsize(600, 600)
        self.canvas.pack()
        self.background_image = tkinter.PhotoImage(file='D:\Python\Projects\Hangman\Images\Platform_3.png')
        self.background_label = tkinter.Label(root, image=self.background_image)
        self.background_label.place(relwidth=0.3, relheight=0.3, anchor='nw')

问题出在路径上。斜杠搞砸了。

您可以通过以下方式解决:
用正斜杠替换反斜杠。例如:
"D:/Python/Projects/Hangman/Images/Platform_3.png"

在字符串后面使用rr表示字符串将被视为原始字符串 Google) 。例如:
r"D:\Python\Projects\Hangman\Images\Platform_3.png"

使用双反斜杠代替一个。例如:
"D:\Python\Projects\Hangman\Images\Platform_3.png"

您可以尝试创建一个变量并为其保存一个引用。像这样:

add = PhotoImage(file="icons/add.png")
label = Label(image=add)
label.image = add  # keep a reference!

然后:

AddButton = Button(MOWindow, image=add, border="0", bg="white", command=AddCallback)