つまみを動かして値を調整できる、C#でいうところのトラックバーは、tkiterでは Scale といいます。
以下にサンプルプログラムを示します。
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master = None):
super().__init__(master)
self.master.title("Scaleの作成") # ウィンドウタイトル
#---------------------------------------------------------------
# Scaleの作成
# Scale(デフォルトで作成)
scaleV = tk.Scale( self.master)
scaleV.pack(side = tk.RIGHT)
# Scale(オプションをいくつか設定)
self.scale_var = tk.DoubleVar()
scaleH = tk.Scale( self.master,
variable = self.scale_var,
command = self.slider_scroll,
orient=tk.HORIZONTAL, # 配置の向き、水平(HORIZONTAL)、垂直(VERTICAL)
length = 300, # 全体の長さ
width = 20, # 全体の太さ
sliderlength = 20, # スライダー(つまみ)の幅
from_ = 100, # 最小値(開始の値)
to = 300, # 最大値(終了の値)
resolution=0.5, # 変化の分解能(初期値:1)
tickinterval=50 # 目盛りの分解能(初期値0で表示なし)
)
scaleH.pack()
#---------------------------------------------------------------
def slider_scroll(self, event=None):
'''スライダーを移動したとき'''
print(str(self.scale_var.get()))
if __name__ == "__main__":
root = tk.Tk()
app = Application(master = root)
app.mainloop()
オプション
オプション名 | 説明 |
activebackground | マウスカーソルがスケール(つまみ)上にあるときのスケールの色を指定します。 |
background | 背景色(値、メモリの文字、スケール(つまみ)の背景色)を指定します。 |
bd | スライダー部の枠線の太さを指定します。 【初期値】2 |
bg | 背景色(値、メモリの文字、スケール(つまみ)の背景色)を指定します。 |
borderwidth | スライダー部の枠線の太さを指定します。 【初期値】2 |
command | 値が変更された時に呼び出されるメソッド名を指定します。 |
cursor | ウィジェット上にマウスポインタがある際のカーソルの種類を指定します。 |
digits | 値、メモリに表示される値の桁数を指定します。 |
fg | フォントの文字色を設定します。 |
font | フォントを指定します。 |
foreground | フォントの文字色を設定します。 |
from_ | 最小値(開始の値)を指定します。 |
highlightbackground | |
highlightcolor | |
highlightthickness | |
label | スライダーの左上(水平方向に配置のとき)もしくは右上(垂直方向に配置のとき)に表示する文字(ラベル)を指定します。 |
length | 全体の長さを指定します。 |
orient | Scaleの配置の向き(縦(tk.VERTICAL)か横(tk.HORIZONTAL))を指定します。 【初期値】tk.HORIZONTAL |
relief | Scale全体の枠線のスタイルを設定します。 【設定値】tk.RAISED, tk.GROOVE, tk.SUNKEN, tk.RIDGE, tk.FLAT |
repeatdelay | |
repeatinterval | |
resolution | つまみを移動した時の変化の分解能を指定します。 【初期値】1 |
showvalue | スライダーの値を表示する(True) /表示しない(False)を指定します。 |
sliderlength | スライダー(つまみ)の幅 |
sliderrelief | |
state | state = tk.DISABLEDを指定するとScaleが無効(変更できない)になります。 |
takefocus | |
tickinterval | 目盛りの文字の分解能を指定します。 【初期値】1 |
to | 最大値(終了の値)を指定します。 |
troughcolor | スライダが動く領域(つまみの背景)の色を指定します。 |
variable | Scaleの値をIntVar,DoubleVar,StringVarクラスオブジェクトで指定します。 |
width | 全体の太さを指定します。 |
コメント