Tkinter (16) 拉桿部件 Scale

Jason990420發表於2020-08-12

拉桿部件的建立及其選項

拉桿部件中包含滑塊 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) 設定目前的滑塊值

範例視窗及程式碼

Python

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 協議》,轉載必須註明作者和本文連結

Jason Yang

相關文章