Я создал функцию «change_color(color) ", где все мои виджеты настраиваются на цвет, передаваемый в качестве аргумента.
Проблема в том, что в коде много виджетов, и мне приходится вручную добавлять каждый виджет в функцию, чтобы держите их в курсе. Я не могу использовать список, так как некоторые параметры виджетов отличаются, например: изменение переднего плана виджета входа, фона меток и многого другого. Пожалуйста, дайте мне знать, если есть лучший способ сделать это.
Вот небольшой пример моей программы. Мой основной код очень длинный, и его нельзя публиковать здесь.
Код: Выделить всё
import tkinter as tk
def change_color(color):
"Change color of widgets."
window.config(bg=color)
user_label.config(bg=color)
pass_label.config(bg=color)
user_entry.config(highlightbackground=color)
pass_entry.config(highlightbackground=color)
user_entry.config(fg=color, insertbackground=color)
pass_entry.config(fg=color, insertbackground=color)
window = tk.Tk()
# username
user_label = tk.Label(window, text='Username')
user_entry = tk.Entry(window, bg='black')
# password
pass_label = tk.Label(window, text='Password')
pass_entry = tk.Entry(window, bg='black')
user_label.grid(row=0, column=0)
user_entry.grid(row=0, column=1)
pass_label.grid(row=1, column=0)
pass_entry.grid(row=1, column=1)
# changes color
user_entry.bind("", lambda _: change_color("#99c9ff"))
pass_entry.bind("", lambda _: change_color("#ffaf99"))
window.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/620 ... in-tkinter