'''Tkinter教程之Scale篇'''
#Scale為輸出限定範圍的數字區間,可以為之指定最大值,最小值及步距值
'''1.建立一個Scale'''
from Tkinter import *
root = Tk()
Scale(root).pack()
root.mainloop()
#建立一個垂直Scale,最大值為100,最小值為0,步距值為1。這個參數設定也就是Scale的預設設定了。
'''2.改變這三個參數,產生 一個水平Scale,最小值為-500,最大值為500,步距值為5'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
Scale(root,
from_ = -500, #設定最大值
to = 500, #設定最小值
resolution = 5, #設定步距值
orient = HORIZONTAL #設定水平方向
).pack()
root.mainloop()
#注意from_的使用方式,在其後添加了"_",避免與關鍵字from的衝突
'''3.Scale綁定變數'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
v = StringVar()
Scale(root,
from_ = 0, #設定最小值
to = 100.0, #設定最大值
resolution = 0.0001, #設定步距值
orient = HORIZONTAL, #設定水平方向
variable = v #綁定變數
).pack()
print v.get()
root.mainloop()
#v的值與Scale的值一致
'''4.使用回呼函數列印當前的值'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
def printScale(text):
print 'text = ',text
print 'v = ',v.get()
v = StringVar()
Scale(root,
from_ = 0, #設定最小值
to = 100.0, #設定最大值
resolution = 0.0001, #設定步距值
orient = HORIZONTAL, #設定水平方向
variable = v, #綁定變數
command = printScale #設定回呼函數
).pack()
print v.get()
root.mainloop()
#這個回呼函數有一個參數,這個值是當前的Scale的值,每移動一個步距就會調用一次這個函數,只保證最後一個肯定會調用,中間的有
#可能不會調用,通過上例可以看到二者的值是完全一樣的。
'''5.控制顯示位元,可以理解為:Scale的值為一整形,在輸出顯示時,它將會被轉化為一字串,如1.2轉化為1.2或1.2000都是可以的'''
#屬性digits是控制顯示的數字位元,將上面的例子中的資料以8位形式顯示,在最後一位會添加一個0
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
def printScale(text):
print 'text = ',text
print 'v = ',v.get()
v = StringVar()
Scale(root,
from_ = 0, #設定最小值
to = 100.0, #設定最大值
resolution = 0.0001, #設定步距值
orient = HORIZONTAL, #設定水平方向
digits = 8, #設定顯示的位元為8
variable = v, #綁定變數
command = printScale #設定回呼函數
).pack()
print v.get()
root.mainloop()
'''6.設定Scale的標籤屬性label'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
Scale(root,
from_ = 0, #設定最大值
to = 100.0, #設定最小值
orient = HORIZONTAL, #設定水平方向
label = 'choice:', #設定標籤值
).pack()
root.mainloop()
#由label設定的值會顯示在水平Scale的上方,用於提示資訊
'''7.設定/取得Scale的值'''
# -*- coding: cp936 -*-
from Tkinter import *
root = Tk()
sl = Scale(root)
sl.set(50) #將Scale的值設定為50
print sl.get() #列印當前的Scale的值
sl.pack()
root.mainloop()
#slider的位置位於了中間,sl.set(50)起作用了,列印值為50。
#author: jcodeer
#blog: jcodeer.cublog.cn
#email: jcodeer@126.com