Python 入門

ホーム > Tkinter による GUI プログラミング > スケール (ttk.Scale) の使い方

スケール (ttk.Scale) の使い方

何らかのパラメータの設定等、ツマミを左右(もしくは上下)に移動する UI は直感的にわかりやすいものです。

下のスクリーンショットのようなコントロールは tkinter では スケール (ttk.Scale) といいます。他のプラットフォームなどでは、スライダーコントロールなどの名称であることも多いです。

上のスクリーンショットは Windows 10 上、もうひとつは Linux (Ubuntu 16.04LTS) です。

次のコード例ではスケール・ウィジェットを動かすことによって、パラメータが変更される状況を追跡します。

from tkinter import *
from tkinter import ttk

def button_click():
    print('value = %d' % myval.get())

def value_changed(*args):
    print('value = %d' % myval.get())
    
if __name__ == '__main__':
    
    root = Tk()
    root.title('Scale')
    root.columnconfigure(0, weight=1);
    root.rowconfigure(0, weight=1);
    
    # Frame
    frame1 = ttk.Frame(root, padding=10)
    frame1.grid(sticky=(N,W,S,E))
    frame1.columnconfigure(0, weight=1);
    frame1.rowconfigure(0, weight=1);
    
    # スケールの作成
    myval = DoubleVar()
    myval.trace("w", value_changed)
    
    sc = ttk.Scale(
        frame1,
        variable=myval,
        orient=HORIZONTAL, 
        length=200,
        from_=0,
        to=255)
    sc.grid(row=0, column=0, sticky=(N,E,S,W))

    #Button
    button1 = ttk.Button(
        frame1, 
        text='OK', 
        command=button_click)
    button1.grid(row=0, column=1, padx=5, sticky=(E))
        
    root.mainloop()

このプログラムでスケールのつまみを動かすと、その都度変更された値をコンソールに出力します。

ここでは DoubleVar オブジェクトを ttk.Scale ウィジェットの variable オプションに設定します。

DoubleVar オブジェクトでは値の変更時のコールバックを、trace メソッドで設定できますので、 そのコールバックで値を出力しています。

ttk.Scale の値のレンジは from オプションと to オプションで指定します。 ただし、Python では from は予約語なのでアンダースコアをつけて、from_ として使います。

ホーム > Tkinter による GUI プログラミング > スケール (ttk.Scale) の使い方