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

云课堂学Python 2024-11-10 22:22:31

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

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

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

使用 from_ 和 to 选项指定滑块的最小值和最大值。使用 orient 选项指定滑块的排列方式,选项值可以是 horizontal 或 vertical 。

import tkinter as tkroot = 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 tkroot = 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 tkroot = 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()

0 阅读:3