Scale 數值調整滑桿
Scale 是 tkinter 裡用來讓使用者透過「拖拉」調整數值的滑桿調整元件,這篇教學會介紹如何在 tkinter 視窗裡加入 Scale 數值調整滑桿,並實作套用改變數值後的簡單應用。
快速導覽:
因為 Google Colab 不支援 tkinter,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda )。
加入 Scale
建立 tkinter 視窗物件後,透過 Scale 方法,就能在視窗物件中建立 Scale 數值調整滑桿,必要的參數有三個,第一個表示要加入的視窗物件,第二個 from_ 表示起始值,to 表示結束值,最後再用 pack() 方法將其加入視窗中 ( 參考 pack 參數設定 ),下方的程式碼執行後,會在視窗裡加入兩個可以調整 0~100 的 Scale ( 一個垂直、一個水平、位置、大小和顏色都使用預設值 )。
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('300x300')
scale_v = tk.Scale(root, from_=0, to=100) # 加入垂直調整滑桿 ( 預設垂直 )
scale_v.pack()
scale_h = tk.Scale(root, from_=0, to=100, orient='horizontal') # 加入水平調整滑桿 ( orient='horizontal' )
scale_h.pack()
root.mainloop()
Scale 參數設定
加入 Scale 之後,可以透過 Scale 的參數調整內容的樣式,下方是 Spinbox 數值調整元件行為相關的參數:
參數 | 說明 |
---|---|
length | Scale 的寬度或高度,預設 100px。 |
width | Scale 拖拉桿的寬度,預設 20px。 |
from_ | 起始值。 |
to | 結數值。 |
orient | 方向,預設 vertical 垂直,可設定 horizontal 水平。 |
digits | Scale 數字位數。 |
resolution | Scale 拖拉時每一改變的間距,預設 1。 |
showvalue | 是否顯示調整的數值,預設 True 顯示,False 不顯示。 |
variable | 與 Scale 綁定的變數。 |
command | Scale 拖拉改變時要執行的函式 ( 注意一定要有一個參數 )。 |
Scale 操作方法
透過下列方法,可以進行 Spinbox 數值調整元件的相關操作:
方法 | 說明 |
---|---|
get() | 取得 Scale 的值。 |
set() | 設定 Scale 的值。 |
調整並即時顯示數值
下方的程式碼執行後,透過 tkinter 的變數,就能讓 Label 即時顯示 Scale 改變的數值。
from email.policy import default
import tkinter as tk
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('300x300')
a = tk.StringVar() # 定義文字變數
a.set('0,0')
# 定義顯示函式,注意一定要有一個參數
def show(e):
a.set(f'{scale_h.get()},{scale_v.get()}')
label = tk.Label(root, textvariable=a)
label.pack()
scale_h = tk.Scale(root, from_=0, to=100, orient='horizontal', command=show) # 改變時執行 show
scale_h.pack()
scale_v = tk.Scale(root, from_=0, to=100, orient='vertical', command=show) # 改變時執行 show
scale_v.pack()
root.mainloop()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~