已獲原做者受權. 原系列地址: Python Tkinter
Tkinter 中的 Scale 控件是一種可供用戶經過拖動指示器改變變量值的控件. 這種控件能夠水平放置, 也能夠豎直放置.
能夠在用戶界面中放置一個 Scale 控件, 用戶經過拖動該控件就能夠在某個取值範圍內選擇一個合適的值. Scale 控件能夠設置最大最小值以肯定取值範圍. 咱們也能夠改變 Scale 控件的放置方式, 使其水平或豎直放置. 當須要用戶在一個範圍內選擇一個值時, Scale 控件比 Entry 控件更合適.php
from Tkinter import * master = Tk() w = Scale(master, from_=0, to=42) w.pack() w = Scale(master, from_=0, to=200, orient=HORIZONTAL) w.pack() mainloop()
上例運行後, 咱們會看到一個水平的拖動條和一個豎直的拖動條:python
上例中咱們已經闡釋瞭如何建立 Scale 控件. 但這還不夠, 咱們還須要取到控件當前的變量值. 使用 get()
方法便可. 咱們擴展了上面的例子, 添加一個按鈕, 當按鈕被點擊時, 兩個拖動條的變量值都會在終端中打印出來:segmentfault
from Tkinter import * def show_values(): print (w1.get(), w2.get()) master = Tk() w1 = Scale(master, from_=0, to=42) w1.pack() w2 = Scale(master, from_=0, to=200, orient=HORIZONTAL) w2.pack() Button(master, text='Show', command=show_values).pack() mainloop()
Scale 控件在剛剛被建立時, 其值被設置爲其最小值, 在上面的例子中這個值爲 0. 經過 set()
方法, 咱們能夠給 Scale 賦值:ide
from Tkinter import * def show_values(): print (w1.get(), w2.get()) master = Tk() w1 = Scale(master, from_=0, to=42) w1.set(19) w1.pack() w2 = Scale(master, from_=0, to=200, orient=HORIZONTAL) w2.set(23) w2.pack() Button(master, text='Show', command=show_values).pack() mainloop()
上面的代碼在建立時會顯示以下窗口:oop
若是 Scale 控件的 tickinterval 選項被設置爲一個數值, 拖動時的選擇值將會變爲該數值的倍數. 咱們爲以前的例子加入這個參數:佈局
from Tkinter import * def show_values(): print (w1.get(), w2.get()) master = Tk() w1 = Scale(master, from_=0, to=42, tickinterval=8) w1.set(19) w1.pack() w2 = Scale(master, from_=0, to=200,tickinterval=10, orient=HORIZONTAL) w2.set(23) w2.pack() Button(master, text='Show', command=show_values).pack() mainloop()
這個程序運行後, 豎直方向的拖動條會產生 0, 8, 16, 24, 32, 40 這些值, 並在左側顯示. 水平方向的拖動條產生 0, 10, 20, 30 ... 這些值, 並在底部顯示. 但咱們沒法看到底部顯示的那些數值, 由於這些數字彼此疊加在一塊兒了. 這是由於拖動條不夠長:spa
要解決這個問題, 咱們須要增長水平拖動條的長度. 經過設置 length 選項能夠實現這點. 在 Scale 控件被豎直放置時, length 參數表示拖動條高度; 在 Scale 控件被水平放置時, length 參數表示拖動條長度. 所以咱們重寫了建立上例中 w2
這個拖動條的代碼:w2 = Scale(master, from_=0, to=200, length=600,tickinterval=10, orient=HORIZONTAL)
通過修改後的程序運行後顯示以下:code
全系列:
[譯][Tkinter 教程01] 入門: Label 控件
[譯][Tkinter 教程02] Message 控件
[譯][Tkinter 教程03] Button 控件
[譯][Tkinter 教程04] Variable 類
[譯][Tinkter 教程05] Radiobutton 控件
[譯][Tkinter 教程06] Checkbox 控件
[譯][Tkinter 教程07] Entry 控件
[譯][Tkinter 教程08] Canvas 圖形繪製
[譯][Tkinter 教程09] Scale 控件
[譯][Tkinter 教程10] Text 控件
[譯][Tkinter 教程11] 對話框和消息框
[譯][Tkinter 教程12] 佈局管理 (Pack Place Grid)
[譯][Tkinter 教程13] Mastermind 遊戲
[譯][Tkinter 教程14] menu 菜單
[譯][Tkinter 教程15] event 事件綁定
譯者水平有限, 若有疏漏, 歡迎指正.
已得到原做者受權. 原文地址: Sliders.