所以,这是我的代码。基本上,我想要做的是制作一个背景颜色与颜色对话框中选择的颜色相同的标签,这样人们就可以看到颜色和颜色的十六进制代码。请帮忙。
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)
答案 0 :(得分:2)
这里有三个问题:
如果您不打算使用它,则导入sys
无效。
Tkinter小部件的place
,pack
和grid
方法始终返回None
。因此,任何对它们的调用都应该始终放在自己的行上。
tkinter.colorchooser.askcolor
返回一个两项元组,如下所示:
((128.5, 64.25, 64.25), '#804040')
此外,此元组中的最后一项是所选颜色的十六进制代码。
以下是该脚本的固定版本:
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()