【问题标题】:Tkinter Background Image Won't LoadTkinter 背景图像不会加载
【发布时间】:2019-08-05 06:01:43
【问题描述】:

我正在尝试创建一个名为 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')

【问题讨论】:

  • 发布启动Game 类的主循环。

标签: python image tkinter background


【解决方案1】:

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

您可以通过以下方式解决它:
将反斜杠替换为正斜杠。例如:
"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"

【讨论】:

  • 是的,这似乎解决了它。导致这种情况的路径是什么?只是好奇,所以我以后不会遇到这个问题。谢谢你,顺便说一句!
  • @KennethBectell 几个字母与\ 的组合可以产生unicode。例如,\n换行
【解决方案2】:

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

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多