2013-12-14 66 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