1.第一個Spinbox
#-*-coding:utf-8-*-
'''
與Entry類似,但可以指定輸入範圍值
第一個Spinbox
'''
from tkinter import *
root = Tk()
Spinbox(root).pack()
root.mainloop()
2.創建Spinbox時指定參數
from:最小值
to:最大值
increment:步距值
#-*-coding:utf-8-*-
'''
創建Spinbox時指定參數
from:最小值
to:最大值
increment:步距值
'''
from tkinter import *
root = Tk()
Spinbox(root, from_ = 0, to = 100,
increment = 5 #設置增量值爲5,這個與Scale的resolution意思相同
).pack()
root.mainloop()
3.設置Spinbox的值 values:指定Spinbox序列值,設置此值後,每次更新值將使用values指定的值
#-*-coding:utf-8-*-
'''
設置Spinbox的值
values:指定Spinbox序列值,設置此值後,每次更新值將使用values指定的值
'''
from tkinter import *
root = Tk()
sb = Spinbox(root,
values = (0, 2, 20, 40, -1),
increment = 2)
sb.pack()
print(sb['values']) #打印 0 2 20 40 -1
root.mainloop()
#顯示的第一個值爲0,up按鈕則爲2,20,40,-1,不再是增2操作,它會使用tuple的索引遞增,直到tuple的最後一個項時,將不再增加;
# down按鈕恰好與up按鈕恰好相反,它使用tuple的索引遞減
4.Spinbox綁定變量 textvariable:指定與Spinbox綁定的變量名稱
#-*-coding:utf-8-*-
'''
Spinbox綁定變量
textvariable:指定與Spinbox綁定的變量名稱
'''
from tkinter import *
root = Tk()
v = StringVar()
sb = Spinbox(root, values = (0, 2, 20, 40, -1), increment = 2, textvariable = v)
v.set(20)
print(v.get())
sb.pack()
root.mainloop()
#上面的代碼將變量v與sb綁定,並將Spinbox的初始值設置爲20,運行程序,Spinbox的值顯示爲20,再點擊up按鈕,此時值變爲40
#即tuple的下一個值,再看下面的代碼,與這個不同的是設置的值不包含在tuple之內
#v.set(200)
#運行程序,顯示的值爲200,再次點擊up按鈕,顯示的值爲2,即雖然Spinbox能將值顯示出來,但並不會將200添加到變量中,
#此時的索引值依舊爲0,因爲沒有找到200的項,當點擊up時,索引值變爲1,即顯示的值爲2
5.設置Spinbox的事件處理函數 command:指定事件處理函數
#-*-coding:utf-8-*-
'''
設置Spinbox的事件處理函數
command:指定事件處理函數
'''
from tkinter import *
root = Tk()
def printSpin():
print('Spinbox')
sb = Spinbox(root, from_ = 0, to = 10, command = printSpin)
sb.pack()
root.mainloop()
6.打印Spinbox的當前內容 get:此方法取得當前顯示的內容
#-*-coding:utf-8-*-
'''
打印Spinbox的當前內容
get:此方法取得當前顯示的內容
'''
from tkinter import *
root = Tk()
def printSpin():
#使用get()方法來得到當前的顯示值
print(sb.get())
sb = Spinbox(root, from_ = 0, to = 10, command = printSpin)
sb.pack()
root.mainloop()
#每次點擊Spinbox按鈕時就會調用printSpin函數,打印出Spinbox的當前值
7.刪除Spinbox字符 delete:刪除指定索引的字符
#-*-coding:utf-8-*-
'''
刪除Spinbox字符
delete:刪除指定索引的字符
'''
from tkinter import *
root = Tk()
def printSpin():
sb.delete(0)
print(sb.get())
sb = Spinbox(root, values = ("hello", "morning", "apple", "ball"), command = printSpin)
sb.pack()
root.mainloop()
8.在Spinbox指定位置插入文本 insert:在指定的索引位置插入文本
#-*-coding:utf-8-*-
'''
在Spinbox指定位置插入文本
insert:在指定的索引位置插入文本
'''
from tkinter import *
root = Tk()
def printSpin():
sb.insert(END, '.0') #在每項後面添加.0
print(sb.get())
sb = Spinbox(root, from_ = 1234, to = 9999, increment = 1, command = printSpin)
sb.pack()
root.mainloop()