在本教程中,将介绍如何创建 Tkinter Spinbox 微调框小部件。
Python 中 Tkinter 中的 Spinbox 小部件用于从指定的给定值范围内选择一个值。
此外,可以直接在 Spinbox 小组件中输入值,就像使用单行文本框小组件一样。
要创建 Spinbox 小部件,请使用构造函数:
tk.Spinbox(master, from_, to, **options)
其中,使用 from_ 和 to 选项指定滑块的最小值和最大值。
获取当前值要获取 Spinbox 的当前值,可以使用 textvariable。例如:
current_value = tk.StringVar(value=0)spinbox = tk.Spinbox( root, from_=0, to=10, textvariable=current_value, wrap=True)spinbox.pack()在此示例中,使用 current_value 保存 Spinbox 小组件的当前值。可以通过调用 get() 方法来获取它:
current_value.get()
还可以使用 Spinbox 对象的方法 get() 获取:
spinbox.get()
Spinbox 允许使用列表或元组设置输入的值。
import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('Spinbox 微调框演示')def value_changed(): print(current_value1.get()) print(current_value2.get()) current_value1 = tk.StringVar(value=0)spinbox1 = tk.Spinbox( root, from_=0, to=10, textvariable=current_value1, command=value_changed, wrap=True)spinbox1.pack(padx=10, pady=10)current_value2 = tk.StringVar(value=0)day=('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')spinbox2 = tk.Spinbox( root, from_=0, to=10, values = day, textvariable=current_value2, command=value_changed, wrap=True)spinbox2.pack(padx=10, pady=10)root.mainloop()调用函数要在 Spinbox 的值更改时执行函数,可以将该函数分配给选项:command
def value_changed(): print(current_value.get()) current_value = tk.StringVar(value=0)spinbox = tk.Spinbox( root, from_=0, to=10, textvariable=current_value, command=value_changed, wrap=True)spinbox.pack()Spinbox 常用选项选项
说明
command
更改时要调用的函数
format
格式化字符串
from_
指定最小值。
justify
控制文本的对齐方式:CENTER、LEFT 或 RIGHT。
state
表示 widget 的状态,其默认值为 NORMAL。
textvariable
用于控制小部件文本的行为。
to
指定最大值
values
使用元组指定值
wrap
选择值时是否循环显示。
Spinbox 常用方法方法
说明
delete(startindex, endindex)
删除指定范围内的字符
get(startindex, endindex)
获取指定范围内的字符
identify(x, y)
标识指定范围内的字符
index(index)
获取给定索引的值
insert(index, string)
将字符串插入到指定的索引处
invoke(element)
用于调用关联的回调