Не отображается иконка приложения на toplevel в python customtkinter

Не отображается иконка на окне ctktoplevel, когда на основном окне всё отображается. Вот код:


def Second():

    second = CTkToplevel(root)

    second.title("second")

    second.iconbitmap("icon.ico")

root = CTk()
root.title("first")
root.iconbitmap("icon.ico")

second_ = CTkButton(root, text="Second window", command=Second)
second_.pack()

root.mainloop()

В функции Second прописано, что, нужно создать второстепенное окно second и ниже задана иконка icon.ico, она задана и в основном окне, но в основном отображается, а в окне second нет.

в окне first есть иконка, а в окне second нет


Ответы (2 шт):

Автор решения: Donovan

Данная проблема уже обсуждалась на сайте, если коротко решение:

def Second():
    second = CTkToplevel(root)
    second.title("second")

    second.after(300, lambda: second.iconbitmap("icon.ico")) # second.iconbitmap("icon.ico")
→ Ссылка
Автор решения: Fox Fox

У меня, например, в программах это решается вот так:

images_app=tkinter.PhotoImage(data=base64.b64decode(r"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAZElEQVR42u3TwQ2AQAhEUeiMUizNUugM7xoxm4ybNf65QuAdwM2sTBsfbS6VwAEA+AVgaPpbgNhDsjy3BLAgQH1kHfYekKLHDAcA4COAa2Uu4JwCAACAEvCUGYBWAWBRgDYt4AB1vYwN5931twAAAABJRU5ErkJggg=="))

root.iconphoto(True, images_app)

Если True, эта иконка будет автоматом назначаться для всех дочерних окон. Конечно же можно использовать не закодированный в base64 вариант, а непосредственно имя файла. Рекомендую также отказаться от использования .ico. Python почему-то плохо работает с этим форматом. Используйте .png. В этом случае команда закрепления иконки с наследованием в дочерних окнах будет выглядеть, например, так: root.iconphoto(True, "myicon.png")

→ Ссылка