Давайте сделаем эту работу, заполнив некоторые недостающие фрагменты:
import tkinter as tk
COLORS = ["red", "blue", 'green', 'cyan', 'magenta', "yellow"]
def change_color(*args):
root.configure(bg=color.get())
root = tk.Tk()
root.minsize(width=200, height=200)
color = tk.StringVar(root)
color.trace('w', change_color)
color.set(COLORS[0])
om = tk.OptionMenu(root, color, *COLORS)
label = tk.Label(root, text='Select your color')
om.pack(side="top")
label.pack(side="top")
root.mainloop()
Первым отсутствующим элементом был StringVar
, связанный с OptionMenu
, что позволяет вам связать его. Чтобы связать функцию обратного вызова с OptionMenu
, мы trace изменим на StringVar
.