Tkinter 使用Scale设置窗口背景颜色

Tkinter 使用Scale设置窗口背景颜色

Scale控件有一个特点是在移动时可以自动触发事件。我们可以在使用Scale( )时增加command参数设置移动时所要执行的callback方法。

def callback():
.
.
.
sliderObj = Scale(..., command = callback)

从上述可知,当有尺度条移动时会调用与执行callback( )方法。

示例1

设计三个尺度条分别代表R、G、B三种颜色,当移动这三个尺度条时,Python Shell将显示这三个尺度条的颜色值,同时可以看到窗口背景颜色也将实时更改。

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)                          # 设置窗口背景颜色

root = Tk()
root.title("apidemos.com")
root.geometry("360x240")

rSlider = Scale(root,from_=0,to=255,label="Red Portion",command=bgUpdade)
gSlider = Scale(root,from_=0,to=255,label="Green Portion",command=bgUpdade)
bSlider = Scale(root,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

root.mainloop()

输出:

Tkinter 使用Scale设置窗口背景颜色

下列是Python Shell窗口显示的内容,此内容会记录RGB色彩值的变化。

Tkinter 使用Scale设置窗口背景颜色

上述设计是将尺度条放置在窗口左上角,如果想调整位置并不太方便,最好的设计方式是先设计一个容器,然后将这三个尺度条放置在此容器内,未来如果想要移动位置,可以直接移动容器位置。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程