Tkinter 容器与Scale综合应用
我们可以使用Frame框架当作容器,然后将三个色彩尺度条放在此框架内。
示例1
将三个色彩尺度条放置在Frame容器内,然后将Frame容器放置在窗口上方中央。
from tkinter import *
def bgUpdade(source): # 注意:这里的参数source是必须的
''' 更改窗口背景颜色 '''
red = rSlider.get() # 读取red值
green = gSlider.get() # 读取green值
blue = bSlider.get() # 读取blue值
print("R=%d, G=%d, B=%d" % (red, green, blue)) # 打印色彩数值
myColor = "#%02x%02x%02x" % (red,green,blue) # 将颜色转成十六进制字符串
print(myColor) # 打印这个代表颜色的字符串
root.config(bg=myColor) # 设置窗口背景颜色
def resetColor():
rSlider.set(0)
gSlider.set(0)
bSlider.set(0)
root = Tk()
root.title("apidemos.com")
root.geometry("360x240")
fm = Frame(root) # 创建框架
fm.pack() # 自动放置在上方中央
rSlider = Scale(fm,from_=0,to=255,label="Red Portion",command=bgUpdade)
gSlider = Scale(fm,from_=0,to=255,label="Green Portion",command=bgUpdade)
bSlider = Scale(fm,from_=0,to=255,label="Blue Portion",command=bgUpdade)
gSlider.set(125) # 设置green分量的初始值是125
rSlider.grid(row=0, column=0) # row=0,col=0
gSlider.grid(row=0, column=1) # row=0,col=1
bSlider.grid(row=0, column=2) # row=0,col=2
btn = Button(root,text="Reset Color",command=resetColor)
btn.pack(pady=5)
root.mainloop()
输出:
上述程序中在第21、22行创建框架fm对象,然后第24~26行将色彩尺度条放置在此框架fm对象内。