为什么我的形象出现在了错误的窗口?

2024-05-13 04:12:46 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想做一个基于文本的游戏,但也希望将图像融入其中,我有一个主菜单,一个始终打开的窗口,然后是一个游戏窗口,应该有图像,但由于某些原因,它出现在菜单窗口中。有人知道为什么吗?在

def menu():

    master = Tk()
    master.geometry("350x300")
    master.wm_iconbitmap("zombie.ico")
    master.configure(background = '#484a2c')
    master.title("Menu")

    def game():  

        master = Tk()
        master.geometry("800x500")
        master.title("Game")
        master.wm_iconbitmap("zombie.ico")
        master.configure(background = '#484a2c')

        image = PhotoImage(file="Kitchenimage.gif")
        label5 = Label(image=image)
        label5.image = image
        label5.pack()

  label = Label(master, text = "Zombie Mansion", background = '#484a2c',  
  font = ("AR CHRISTY", 30))
  label.pack()

  b = Button(master,text = "Play Game", height = 1, width = 10)
  b.config(background = '#484a2c', activebackground = '#484a2c',  font = 
  ("AR CHRISTY", 14), command = get_username)
  b.place(x = 120, y = 70)


mainloop()

Tags: 图像imagemaster游戏configuredef菜单tk
1条回答
网友
1楼 · 发布于 2024-05-13 04:12:46

"Why is my image appearing on the wrong window in Tkinter?"

假设您在代码中的某个地方有另一个Tk实例,即您所说的主菜单,但您没有向我们展示:

main = Tk()

除了game方法中的master = Tk()之外,这是因为当您在实例化小部件时没有显式地传递父部件,如中所示:

^{pr2}$

然后小部件的父级默认为Tk实例,其mainloop正在运行,在上面的例子中,假设是main。默认情况下,小部件显示在它们的父级下,这就是原因。在

将父对象显式传递如下:

label5 = Label(master=main, image=image)

或者

label5 = Label(master, image=image)

在大多数情况下,如果不是所有的情况,you shouldn't have multiple instances of ^{}。如果需要其他窗口,请使用Toplevel小部件。在

相关问题 更多 >