在本教程中,将介绍如何创建 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 tk
root = 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) | 用于调用关联的回调 |