首页 > 解决方案 > 如何在 tkinter 中设置用户选择的背景颜色?

问题描述

如何获取用户选择的颜色并将其用作 tkinter 框架的背景颜色?

list2 = ["red", "red", "red", "red", "blue", "yellow"];
droplist = OptionMenu(root, c, *list2)
droplist.config(width=15)
c.set('select your colour')
droplist.place(x=240, y=320)
root.configure(bg=c)

标签: pythonpython-3.xtkinter

解决方案


让我们通过填写一些缺失的部分来完成这项工作:

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()

主要缺失的部分是StringVarOptionMenu允许您询问它的关联。为了将回调函数与 相关联OptionMenu,我们跟踪StringVar.


推荐阅读