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()
微信扫码关注
抖音扫码关注