Spinbox控件也是一种输入控件,它是允许用户用鼠标点击uo/down按钮,或是上箭头/下箭头达到某一数值区间内的增减数值,也可以直接输入数值
import tkinter as tk
win = tk.Tk()
win.title('Spinbox')
win.geometry('300x100')
"""
from_=10 范围的开始值
to=30 范围的末端值
increment=2 每次点击增长或减少的值得量
state 【值必须是 disabled, normal, readonly
disabled:无法使用;readonly:只读显示】
repeatdelay 单击up/down按钮变化数字的间隔时间
wrap 单击up/down会再从起始值开始(前提是你已经到最高值或最低值,再点击up或者down)
"""
spin = tk.Spinbox(win, from_=10, to=30, increment=2, state='normal', repeatdelay=300000000, wrap=True)
spin.pack(pady=25)
win.mainloop()

注意事项:wrap的值必须是bool类型的值,但是你传int的数据是不会报错的,字符串类型的汉字或字母就会报如下错误
F:\virtualEnvironment\venv\Scripts\python*ex.e** F:/git/test-python/tkinterGui/tkinterExampleSpinbox.py
Traceback (most recent call last):
File "F:/git/test-python/tkinterGui/tkinterExampleSpinbox.py", line 32, in <module>
command=get_data)
File "D:\Python\Python37\lib\tkinter\__init__.py", line 3646, in __init__
Widget.__init__(self, master, 'spinbox', cnf, kw)
File "D:\Python\Python37\lib\tkinter\__init__.py", line 2299, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: expected boolean value but got "up"
- get()方法获取数值
import tkinter as tk
win = tk.Tk()
win.title('Spinbox')
win.geometry('300x100')
def get_data():
print(spin.get())
spin = tk.Spinbox(win, from_=1, to=5, increment=2, state='normal', repeatdelay=300000000, wrap=True, command=get_data)
spin.pack(pady=25)
win.mainloop()

- 数值型的数据信息
# 部分代码展示
def get_data():
print(spin.get())
spin = tk.Spinbox(win, values=(10, 20, 30, 40), state='normal', repeatdelay=300000000, wrap=True, command=get_data)
spin.pack(pady=25)
win.mainloop()
- 非数值型的数据信息,例如字符串
# 部分代码展示
def get_data():
print(spin.get())
spin = tk.Spinbox(win, values=('篮球', '足球', '羽毛球', '保龄球'), state='normal', repeatdelay=300000000, wrap=True,
command=get_data)
spin.pack(pady=25)
win.mainloop()
未完,待续...
一直在努力,希望你也是 !