Как сделать переливающийся фон окна tkinter?
import tkinter
window = tkinter.Tk()
window.config(bg='#переливающийся цвет')
window.geometry('420x500')
window.title('Title')
window.mainLoop()
В приведённом коде выше вместо текста в "bg=
" хотелось бы вставить переменную/имя функции, которая делает переливающийся цвет фона окна (если это возможно).
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
window.config(bg='#цвет')
-> Параметр bg принимает формат RGB,
так что можно собрать кортеж из шестнадцатеричных кодов цвета
и через метод .after()
ставить асинхронные задачи для главного цикла root.mainloop()
.
import tkinter as tk
def animate_background(root, colors, index=0):
root.config(bg=colors[index])
index = (index + 1) % len(colors)
root.after(200, animate_background, root, colors, index)
root = tk.Tk()
root.geometry("400x300")
colors = ('#4faf0e', '#5aa114', '#65931a', '#708620', '#7b7826',
'#866b2d', '#915d33', '#9c5039', '#a7423f', '#b33546', '#d5e46a',
'#cddc74', '#c6d57f', '#bfce8a', '#b8c795', '#b0bf9f', '#a9b8aa',
'#a2b1b5', '#9baac0', '#94a3cb', '#bff010', '#b1ec1a', '#a3e925',
'#96e62f', '#88e33a', '#7bdf44', '#6ddc4f', '#60d959', '#52d664',
'#45d36f', '#dd3ed9', '#d13bdc', '#c539e0', '#b936e4', '#ad34e7',
'#a131eb', '#952fef', '#892cf2', '#7d2af6', '#7128fa', '#ab884e',
'#9e8947', '#918b41', '#858d3b', '#788f34', '#6b902e', '#5f9228',
'#529421', '#45961b', '#399815')
animate_background(root, colors)
root.mainloop()