2013-12-14 34 views
1

所以,这是我的代码。基本上,我想要做的是制作一个背景颜色与颜色对话框中选择的颜色相同的标签,以便该人员可以看到颜色和颜色的十六进制代码。请帮忙。如何用背景色作为用户选择的颜色制作标签?

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) 

回答

2

有三个问题在这里:

  1. 导入sys如果你不打算使用它什么都不做。

  2. Tkinter的部件的placepackgrid方法总是返回None。因此,任何对他们的呼叫都应该放在他们自己的路线上。

  3. tkinter.colorchooser.askcolor返回两项的元组是这样的:

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

    Futhermore,在该元组中的最后一项是所选择的颜色的十六进制码。

下面是脚本的一个固定的版本:

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

哇感谢!这真的很有帮助 – user2975375