拉桿部件的建立及其選項
拉桿部件中包含滑塊 slider, 滑塊槽 trough, 刻度 tick, 標題 label 以及滑塊值 value.
import tkinter as tk
parent = tk.Tk()
scale = tk.Scale(parent, option, ...)
選項 |
說明 |
activebackground |
active 時的背景色 |
bg or background |
背景色,點陣圖時則為顏色值 0 的顏色 |
bd or borderwidth |
滑塊與槽外框的寛度,內定為 2 點素 |
command |
滑塊改變時呼叫的程式, 一個引數為滑塊值 |
cursor |
當滑鼠移到部件時,所顯示的滑鼠圖示 |
digits |
IntVar, DoubleVar (float), StringVar 為滑塊值的顯示方式 |
font |
標籤和註釋使用的文字字型 |
fg or foreground |
前景色 |
from_ |
拉桿值範圍的起始值, 內定為 0 |
highlightbackground |
非聚焦時的聚焦顏色 |
highlightcolor |
聚焦時的聚焦顏色 |
highlightthickness |
聚焦厚度,內定 1, 0 則無 |
label |
標題字串, 水平在左上角, 垂直在右上角, 內定為無 |
length |
部件長度, 單位為點素, 內定為 100 點素 |
orient |
HORIZONTAL/VERTICAL 水平或垂直方向 |
relief |
花邊樣式,內定為 FLAT |
repeatdelay |
直到經過指定時間 (毫秒), 開始重複按下滑塊槽, 內定 300ms |
repeatinterval |
重複間隔,以毫秒為單位重複按下滑塊槽, 內定 100ms |
resolution |
滑塊值變動的最小單位值, -1 則為不取小數值 |
showvalue |
是否顯示滑塊值, 內定為 True |
sliderlength |
滑塊的長度, 內定為 30 點素 |
sliderrelief |
滑塊的花邊樣式,內定為 RAISED |
state |
部件狀態,內定為 NORMAL / ACTIVE / DISABLED |
takefocus |
TAB 鍵在部件是否會迴圈焦點,1 則會,內定為空字串,則僅在具有鍵繫結下迴圈焦點 |
tickinterval |
刻度的間隔, 內定為 0, 無刻度 |
to |
浮點拉桿值範圍的終止值, 內定為 100 |
troughcolor |
滑塊槽的顏色 |
variable |
滑塊值變數, IntVar, DoubleVar 或 StrngVar |
width |
滑塊槽寛度,內定為 15 點素 |
拉桿部件的方法
方法 |
說明 |
coords(value=None) |
返回滑塊值為 value 時, 滑塊所在的中心座標, 預設 None 為目前滑塊所在的中心座標 |
get() |
返回目前的滑塊值 |
identify(x, y) |
返回座標 (x, y) 對應的零件, ‘slider’滑塊/‘trough1’前滑塊槽/‘trough2’後滑塊槽/‘’其他位置 |
set(value) |
設定目前的滑塊值 |
範例視窗及程式碼
import tkinter as tk
def update(value):
label.configure(text=f"You drag the slider to value {value}.")
root = tk.Tk()
root.wm_title("Scale Demo")
font = ('Courier New', 20, 'bold')
select = tk.IntVar()
scale = tk.Scale(
label='Scale Widget', font=font, orient=tk.HORIZONTAL, showvalue=False,
bg='green', fg='white', tickinterval=20, length=800, width=30,
troughcolor='blue', variable=select, command=update)
scale.grid(row=0, column=0)
label = tk.Label(text='', width=40, font=font)
label.grid(row=1, column=0)
root.mainloop()
本作品採用《CC 協議》,轉載必須註明作者和本文連結