Странное изменение фона библиотеки customtkinter (python 3.11.9)
Делаю приложение (что то вроде голосового помощника), столкнулся с проблемой заливки фона, как я полагаю. Код (ошибок не возникает):
import customtkinter as ct, tkinter
class CustomWindow(ct.CTk):
def open_settings(self):
self.settings_window = ct.CTkToplevel(self)
self.settings_window.title("Settings")
self.settings_window.geometry("220x200")
self.label22 = ct.CTkLabel(self.settings_window, text="Тёмная тема")
self.label22.grid(row=0, column=0, pady=(10, 0), sticky="w")
#self.var = tkinter.BooleanVar()
self.switch = ct.CTkSwitch(self.settings_window, text="Светлая тема", variable=self.var, command=self.set_appearance_modee)
self.switch.grid(row=0, column=1, padx=(10, 0), sticky="e")
def __init__(self):
super().__init__()
self.var = tkinter.BooleanVar()
self.title("FriDay MainApp")
self.geometry("400x300")
#иконка
self.png = Image.open("files/dk_ico.ico")
self.png = self.png.resize((100, 100))
self.png = ct.CTkImage(light_image=self.png, size=(100, 100))
self.il = ct.CTkLabel(self, image=self.png, text="")
self.il.pack(pady=0)
#различные данные
self.time_label = ct.CTkLabel(self, text="00:00:00", font=("Arial", 24))
self.time_label.pack(pady=5)
x = asyncio.run(getweather())
self.label_temperature = ct.CTkLabel(self, text="Температура: "+str(x)+"°. ", font=("Arial", 14))
self.label_temperature.pack(pady=5)
self.frame = ct.CTkFrame(self, fg_color="grey", height=20) #50
self.frame.pack(padx=50, pady=(0, 10), fill=ct.BOTH, expand=False, side=ct.BOTTOM)
self.label_quer = ct.CTkLabel(self, text="***Ничего не услышано***")
self.label_quer.pack(pady=15)
self.settings_button = ct.CTkButton(self, text="Settings", command=self.open_settings, fg_color="grey")
self.settings_button.pack(pady=(0, 2))
def set_appearance_modee(self): #меняет тему приложения
try:
if self.var.get():
ct.set_appearance_mode("light")
self.png = Image.open("files/lg_ico.ico")
self.fg_color = "#ebebeb" #цвета подобраны точно
else:
ct.set_appearance_mode("dark")
self.png = Image.open("files/dk_ico.ico")
self.fg_color = "#242424" #цвета подобраны точно
self.png = self.png.resize((100, 100))
self.png = ct.CTkImage(light_image=self.png, size=(100, 100))
self.il.configure(image=self.png)
except Exception as e:
pass
def rotate_image(self): #картинка крутится
angle = 1
while True:
if self.var.get():
self.png = Image.open("files/lg_ico.ico").rotate(angle, expand=True)
else:
self.png = Image.open("files/dk_ico.ico").rotate(angle, expand=True)
self.png = ct.CTkImage(light_image=self.png, size=(100, 100))
self.il.configure(image=self.png)
self.il.after(30)
angle += 1
В итоге темная тема (изначально основная) работает как надо:
но при переключении на светлую тему происходит это:
(тема меняется на светлую, но при этом остаётся чёрный квадрат, сзади картинки)
Все картинки в формате .ico
, без фона опять таки.
Но если много раз попереключать темы, то получается наоборот:
светлая тема работает как надо, а тёмная становится странной