Изображения не отображаются в окне и кнопке tkinter - PullRequest
0 голосов
/ 17 марта 2019

Когда я пытаюсь запустить программу ниже, она показывает мне эту ошибку:

Программа:

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, но все они не работают (файл уже находится в рабочей папке, и я уже проверил, совпадает ли имя между файлом и именем в коде).Кроме того, когда я пытаюсь запустить программу без кнопки, значок в левом верхнем углу окна не отображается, вместо этого я получаю изображение файла.(Снимок экрана ниже).

Значок окна:

Значок окна

Используемая среда разработки: Visual Code Studio, ОС: Windows 10

Извините за мой плохой язык, я французский студент.

1 Ответ

0 голосов
/ 17 марта 2019

Если я понимаю, что вы хотите сделать.

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...