Не получается поставить иконку в окне customtkinter, В чём моя ошибка?

Рейтинг: 0Ответов: 1Опубликовано: 07.02.2023

Мой код:

import customtkinter as CTk
from PIL import Image

class App(CTk.CTk):
    def __init__(self):
        super().__init__()
        self.geometry('800x500')
        self.resizable(False, False)
        self.title('Main')
        self.logo = Image.open('img\\icon_ico.ico')
        self.iconphoto(False, self.logo)
        self.logo.close()

if __name__ == '__main__':
    app = App()
    app.mainloop()

Ошибка:

Traceback (most recent call last):
  File "C:\Users\Artyom\PycharmProjects\generated-game-gpt3\ui.py", line 16, in <module>
    app = App()
          ^^^^^
  File "C:\Users\Artyom\PycharmProjects\generated-game-gpt3\ui.py", line 12, in __init__
    self.iconphoto(False, self.logo)
  File "C:\Users\Artyom\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 2183, in wm_iconphoto
    self.tk.call('wm', 'iconphoto', self._w, *args)
_tkinter.TclError: can't use "<PIL.IcoImagePlugin.IcoImageFile image mode=RGBA size=256x256 at 0x1833DFF5550>" as iconphoto: not a photo image

Ответы

▲ 0

Нашёл решение на свой вопрос, вместо обычного добавления (как в tkinter) иконки нужно сделать так:

root.after(201, lambda :root.iconbitmap('C:\\Users\\...\\filename.ico'))

Источник - https://github.com/TomSchimansky/CustomTkinter/discussions/1099