Python GUI 编程:tkinter 初学者入门指南——滑块

在本文中,将介绍如何使用 tkinter Scale 滑块小部件创建滑块。滑块可以通过移动指示器来输入值。滑块有垂直和水平两种样式。

要创建滑块,使用如下构造函数。

tk.Scale(master, from_, to, **options)

使用 from_to 选项指定滑块的最小值和最大值。使用 orient 选项指定滑块的排列方式,选项值可以是 horizontalvertical

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Scale 滑块演示')

scale1 = tk.Scale(root, from_=0, to=100, orient='horizontal', length=200)
scale1.pack()
scale2 = tk.Scale(root, from_=0, to=100, orient='vertical', length=200)
scale2.pack()
root.mainloop()

获取当前值

要获取滑块的当前值,可以使用 variable 选项及 DoubleVar()

在滑块的值发生变化时运行函数,可以使用 command 选项调用函数。

import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Scale 滑块演示')
def scale_changed(event):
    scale_label.configure(text=current_value.get())

current_value = tk.DoubleVar()
scale = tk.Scale(root, from_=0, to=100, orient='horizontal', length=200, variable=current_value, command=scale_changed)
scale.pack()
scale_label = tk.Label(root, text=' ')
scale_label.pack()
root.mainloop()

利用 Scale 小部件的 resolution 参数来设置步长。

resolution 参数设置为 5,这意味着滑块的相邻两个值的差为 5。

# 实例:颜色合成
import tkinter as tk
root = tk.Tk()
root.geometry('600x400+200+200')
root.title('Scale 滑块演示')
def rgb(v):
    color_c='#%02x%02x%02x' % (scale1.get(), scale2.get(), scale3.get())
    color_r='#%02x%02x%02x' % (scale1.get(), 0, 0)
    color_g='#%02x%02x%02x' % (0, scale2.get(), 0)
    color_b='#%02x%02x%02x' % (0, 0, scale3.get())
    button1.config(bg=color_c)  
    button1.config(text=color_c)   
    scale1.config(bg=color_r)
    scale2.config(bg=color_g)
    scale3.config(bg=color_b)

label = tk.Label(root, text="颜色合成", font=("Helvetica", 20))
label.pack(padx=5,pady=10)

scale1 = tk.Scale(root, from_=0, to=255,bg='red', orient='horizontal', length=250, command=rgb)
scale1.pack(padx=5,pady=10) 

scale2 = tk.Scale(root, from_=0, to=255,bg='green', orient='horizontal', length=250, command=rgb)
scale2.pack(padx=5,pady=10) 

scale3 = tk.Scale(root, from_=0, to=255,bg='blue', orient='horizontal', length=250,command=rgb)
scale3.pack(padx=5,pady=10) 

button1=tk.Button(root,text='颜色合成',width=15)
button1.pack(padx=5,pady=10)
root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息科技云课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值