田舎社会人のいろいろ学習記

Python、英語、その他いろいろ

【tkinter】Scaleの使い方【Python】

f:id:vigilantPotato:20210519235851p:plain
Scaleはスライドバーを左右に移動させることで、数値を自由に設定することができるウィジェットである。


【スポンサーリンク】


Scaleの概要

Scaleはスライドバーを左右に移動さて数値を調整することができる。設定した値はvariableオプションやgetメソッドを用いて取得することが可能。以下、Scaleの値をリアルタイムでLabelに表示させる例を示す。

import tkinter

root = tkinter.Tk()

#Scaleの値格納用変数
var = tkinter.StringVar(root)

#Labelの生成
l = tkinter.Label(
    root,
    textvariable=var,   #varを表示
    relief="ridge",
    )
l.pack()

#Scaleの生成
s = tkinter.Scale(
    root,
    variable=var,   #スケールの値をvarにセット
    )
s.pack()

root.mainloop()

ScaleのvariableオプションにStringVar設定することでScaleの値を取得し、それをLabelのtextvariableオプションに設定することで、Label取得した値を表示させている。以下、実行時の画面を示す。

f:id:vigilantPotato:20210519235326p:plain
Scaleのスライドバーを操作すると、その値がLabelに反映される。
f:id:vigilantPotato:20210519235244p:plain

[↑ 目次へ]


【スポンサーリンク】


Scale値を取得・設定

getメソッド及びsetメソッドでScaleの値を取得・設定する方法を示す。

import tkinter

root = tkinter.Tk()

#b1ボタンクリック時に実行する関数
def get_value():
    b1.config(text=s.get()) #Scaleの値を取得して表示

#b2ボタンクリック時に実行する関数
def set_value():
    s.set(50)   #Scaleに50をセット

#Scaleの生成
s = tkinter.Scale(
    root,
    orient="horizontal",
    )
s.pack()

#Scale値を取得して表示するボタン
b1 = tkinter.Button(
    root,
    widt=15,
    text="show_scale",
    command=get_value,
    )
b1.pack()

#Scale値を50に変更するボタン
b2 = tkinter.Button(
    root,
    widt=15,
    text="set 50",
    command=set_value,
    )
b2.pack()

root.mainloop()

ボタンb1はScale値をgetメソッドで取得してボタンタイトルに表示し、ボタンb2はsetメソッドでScale値を50にセットしている。以下、実行時の画面を表示する。

f:id:vigilantPotato:20210519235424p:plain

上のボタン(b1)をクリックするとScaleの現在値を取得してボタン上に表示する。

f:id:vigilantPotato:20210519235452p:plain

下のボタン(b2)をクリックすると、Scaleに50をセットする。

f:id:vigilantPotato:20210519235504p:plain

[↑ 目次へ]


【スポンサーリンク】


オプション・メソッド

主なオプション・メソッド 動作
background(bg) 背景色
borderwidth(bd) 境界幅
relief 縁の3D表示設定(flat, raised, sunken, groove, ridge)
valiable variableに現在値を格納する場合に使用
orient Scaleの向き(horizontal:水平, vertical:垂直)
from_ 下限値
to 上限値
showvalue 数値表示のON/OFF 0にすると数値が非表示になる
.set() Scaleに値をセット
.get() Scaleの値を取得

[↑ 目次へ]


【スポンサーリンク】