import Tkinter as tk
window=tk.Tk()
def sliderUpdate(something):
red=redSlider.get()
green=greenSlider.get()
blue=blueSlider.get()
colour="#%02X%02X%02X"%(red,green,blue)
canvas.config(bg=colour)
hexText.delete(0,tk.END)
hexText.insert(0,colour)
def buttonClick():
colour=hexText.get()
canvas.config(bg=colour)
redSlider.set(int(colour[1:3],16))
greenSlider.set(int(colour[3:5],16))
blueSlider.set(int(colour[5:7],16))
canvas=tk.Canvas(window)
redSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
greenSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
blueSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
hexText=tk.Entry(window,text="#000000")
button=tk.Button(window,text="Click",command=buttonClick)
redSlider.grid(row=1,column=1)
greenSlider.grid(row=1,column=2)
blueSlider.grid(row=1,column=3)
canvas.grid(row=2,column=1,columnspan=3)
hexText.grid(row=3,column=1,columnspan=3)
button.grid(row=4,column=1,columnspan=3)
window.mainloop()
本段程序中重要运用到如下
1.Scale.get()
然后colour="#%02X%02X%02X"%(red,green,blue)将数值写为字符串
2.redSlider.set(int(colour[1:3],16))这句话,是将一个16进制字符串,转化为10进制的数字,然后通过Scale.set()
方法
3.redSlider.grid(row=1,column=1) grid方法,来有点像html中table的布局,以及columnspan跨列
//刚在书上看到一个制作颜色选择器,然后自己又改了一点,自己做东西,有种丰衣足食的感觉