Tkinter教程之Scale篇

來源:互聯網
上載者:User
'''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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.