图像未出现在Tkinter窗口和按钮中

时间:2019-03-17 16:00:31

标签: python python-3.x tkinter

当我尝试运行以下程序时,它向我显示此错误:

程序:

import tkinter as tk

class RootWindow() :

    def __init__(self) :
        root=tk.Tk()
        self.root=root
        root.title("Isekai no yusha")
        root.wm_iconbitmap(bitmap = "Icon.xbm")
        root.configure(bg="black")
        root.resizable(width=False, height=False)

        screenWidth, screenHeight=root.winfo_screenwidth(), root.winfo_screenheight()
        screenWidth, screenHeight=int(screenWidth/2)-400, int(screenHeight/2)-200
        self.screenWidth, self.screenHeight=screenWidth, screenHeight

        #RootWindow.StartMenu(self)

        rootSize=(f"800x400+{screenWidth}+{screenHeight}")
        root.geometry(rootSize)
        root.mainloop()

    #def StartMenu(self) :
    #   newGameButton=tk.Button(self.root, bitmap=("new_game_icon.xbm"), bg="black", fg="white", border=False, command=self.root.destroy)
    #    newGameButton.pack()
    #    newGameButton.place(x=10, y=10)

master=RootWindow()

错误:

Exception has occurred: _tkinter.TclError
bitmap "new_game_icon.xbm" not defined
  File "D:\programmation\IDLE RPG\Test2.py", line 24, in StartMenu
    newGameButton=tk.Button(self.root, bitmap=("new_game_icon.xbm"), bg="black", fg="white", border=False, command=self.root.destroy)
  File "D:\programmation\IDLE RPG\Test2.py", line 17, in __init__
    RootWindow.StartMenu(self)
  File "D:\programmation\IDLE RPG\Test2.py", line 28, in <module>
    master=RootWindow()

我已经尝试过将文件格式更改为png,bmp和xbm,但是它们都不起作用(该文件已经在工作文件夹中,并且我已经检查了文件名和代码中的名称是否匹配) 。 另外,当我尝试在没有按钮的情况下运行程序时,窗口左上角的图标没有显示,而是显示了文件图像。 (下面的屏幕截图)。

窗口图标:

Window icon

使用的IDE:Visual Code Studio,操作系统:Windows 10

对不起,我的语言不好,我是法国学生。

1 个答案:

答案 0 :(得分:0)

如果我了解您要做什么。

import tkinter as tk

class RootWindow() :

    def __init__(self) :
        root=tk.Tk()
        self.root=root
        root.title("Isekai no yusha")

        imgicon = tk.PhotoImage(file='icon.png')
        root.call('wm', 'iconphoto', root._w, '-default', imgicon)   
        #root.wm_iconbitmap(bitmap = "Icon.xbm")