如何制作背景颜色的标签作为用户选择的颜色?

时间:2013-12-14 23:26:31

标签: python user-interface python-3.x tkinter

所以,这是我的代码。基本上,我想要做的是制作一个背景颜色与颜色对话框中选择的颜色相同的标签,这样人们就可以看到颜色和颜色的十六进制代码。请帮忙。

import sys
from tkinter import *
from tkinter import colorchooser

mGui = Tk()
mGui.geometry("600x300+500+500")
mGui.title("Hexadecimal Color Chooser")

def getColor():
    mycolor = colorchooser.askcolor()
    label = Label(mGui, bg = mycolor).pack()
    mycolor = str(mycolor)
    start = mycolor.index("#")
    stop = mycolor.index("')")
    mycolor = mycolor[start:stop]
    label = Label(mGui, text = "The hexadecimal color code is: " + mycolor).pack()

button = Button(mGui, text = "Choose a color", command = getColor).place(x=0, y=0)

1 个答案:

答案 0 :(得分:2)

这里有三个问题:

  1. 如果您不打算使用它,则导入sys无效。

  2. Tkinter小部件的placepackgrid方法始终返回None。因此,任何对它们的调用都应该始终放在自己的行上。

  3. tkinter.colorchooser.askcolor返回一个两项元组,如下所示:

    ((128.5, 64.25, 64.25), '#804040')  
    

    此外,此元组中的最后一项是所选颜色的十六进制代码。

  4. 以下是该脚本的固定版本:

    from tkinter import *
    from tkinter import colorchooser
    
    mGui = Tk()
    mGui.geometry("600x300+500+500")
    mGui.title("Hexadecimal Color Chooser")
    
    def getColor():
        color_choice = colorchooser.askcolor()[1]  # get the hex code
        color = Label(mGui, bg=color_choice)
        color.pack()
        hexcode = Label(mGui, text="The hexadecimal color code is: "+color_choice)
        hexcode.pack()
    
    button = Button(mGui, text="Choose a color", command=getColor)
    button.place(x=0, y=0)
    
    mGui.mainloop()