Вместо картинки в окне отображается белый прямоугольник
У меня есть класс Window (project\bin\windiws\window.py) который я использую для создания окон. Я хочу чтобы для каждого окна были заголовок, одинаковая иконка и шапка (картинка). Если с первыми 2 у меня особых проблем не возникло, то с 3 у меня просто не отображается картинка. При этом никаких ошибок или исключений не возникает.
import tkinter as tk
class Window(tk.Tk, tk.Toplevel):
def __init__(self, size, master=None):
if master is None:
tk.Tk.__init__(self)
else:
tk.Toplevel.__init__(self, master)
self.iconphoto(False, tk.PhotoImage(file="messenger (new)\\images\\logo\\icon.ico"))
self.title("Messenger")
self.geometry(size)
self.config(background="#DDD")
self.resizable(False, False)
x = int(str(size)[:3])
y = 40 if x == 250 else 50
if x == 250:
img = tk.PhotoImage(file="messenger (new)\\images\\logo\\mini_logo.png")
else:
img = tk.PhotoImage(file="messenger (new)\\images\\logo\\logo.png")
logo = tk.Label(self, image=img, width=x, height=y)
logo.pack()
А для его запуска файл main.py (project\main.py)
from bin.windows.window import Window
root = Window("500x500")
# Window("250x250", root).mainloop()
root.mainloop()
После запуска появляется окно со светло серым фоном и белой шапкой вместо нужной картинки. Я пробывал использовать Pillow и Canvas вот только у меня это почему-то не работало.
Но, если убрать все эти классы и просто создать окно со всеми необходимыми параметрами, то это почему-то работает корректно.
import tkinter as tk
window = tk.Tk()
window.iconphoto(True, tk.PhotoImage(file="messenger (new)\\images\\logo\\icon.ico"))
window.title("Messenger")
window.geometry("500x500")
window.resizable(False, False)
img = tk.PhotoImage(file="messenger (new)\\images\\logo\\logo.png")
lbl = tk.Label(window, image=img)
lbl.place(width=500, height=50)
window.mainloop()
Помогите пожалуйста. Мне уже завтра сдавать этот проект, а я не могу решить эту, казалось бы простую, проблему