| Python — Tkinter | Изменение цвета отличающегося виджета при нажатии кнопки

#python #python-3.x #tkinter #widget #tkinter-menu

#python #python-3.x #tkinter #виджет #tkinter-меню

Вопрос:

Чего я хочу: когда пользователь нажимает кнопку (розовая оболочка), весь текущий цвет переключается на другой. Но когда приходит время переключать цвет, цвет на экране не меняется. Но если я добавлю печать после (загружается розовая обложка) с новым цветом, она отправит новую. Но старый все еще используется для моего виджета и рамки. (пример: Когда я использую color для bg, я использовал colorBg, который является переменной с #color и т.д.)

Я также не получаю ошибок, все остальное работает нормально.

 def skin(skinColor):
global colorButton,colorOver,colorBg
if skinColor == "default":
    print("Default skin loaded")
elif skinColor == "blue":
    print("Blue skin loaded")
elif skinColor == "pink":
    colorButton.clear()
    colorBg.clear()
    colorButton = list("blue")
    colorBg = list("white")
    print("Pink skin loaded")
  

Комментарии:

1. Извините, я француз, поэтому английский не самый лучший

Ответ №1:

Просто вызовите label.config() функцию.

Что-то вроде этого:

 import tkinter as tk

root = tk.Tk()
frame = tk.Frame(root)
frame.pack()


def fu():
    button.config(bg='green')


button = tk.Button(frame, text="Change something", fg="red", command=fu)
button.pack()

root.mainloop()
  

Комментарии:

1. Уже пользуюсь этим. Что я пытаюсь сделать, так это функцию, в которой при нажатии кнопки bg = ‘green’ переключится на красный. Это работает для изменения цвета (названия), но ни один из цветов на самом деле не меняется в окне