Python GUI tkinter編程之Spinbox篇

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()

發佈了59 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章