Python Code Notes

Information by python engineer

【tkinter】Scaleの使い方【Python】

Scaleはスライドバーを移動させて数値を設定するためのウィジェットです。具体的な例を示しながら使用方法を整理しました。


【スポンサーリンク】


Scaleの使い方概要

Scaleはスライドバーの移動でユーザーに数値設定をしてもらうためのウィジェットです。基本的な使い方の例として、スライドバーの現在値をLabelに表示させる例を示します。

How to use scale widget_1

実行するとLabelと縦・横向きのScaleが表示され、スライドバーを移動させると、Labelにもその値がリアルタイムで反映されます。操作していない方のScaleも連動して同じ値を維持します。

Scale使用例

この例では、LabelのtextvariableとScaleのvariableパラメータにvariable変数のIntVarを設定することで値の共有を行っています。

Scaleはデフォルトで0~100, 1刻みの設定になっています。範囲を変更するにはfrom_toパラメーターを、数値のステップ量を変更するにはresolutionパラメータをそれぞれ設定します。50~200を5刻みで調整するスライドバーにする場合は以下の通りとなります。

scale = tkinter.Scale(
        root,
        from_=50,
        to=200,
        resolution=5,
        )

値の共有だけでなく、スライドバー移動時に特定の処理を実行したい場合は、commandオプションで関数と紐づけることが可能です。この例はScaleでWindowsの音量調整をする方法で紹介します。

[↑ 目次へ]


【スポンサーリンク】


数値の取得・セット方法

Scaleの現在値を取得するにはgetメソッドを、Scaleに特定の値をセットするにはsetメソッドを使用します。以下、ボタンを用いてScaleの数値を取得・値をセットする方法を示します。

How to use scale widget_2

実行するとScaleと2つのButtonウィジェットが表示されます。

実行時

上側のボタンをクリックすると、Scaleの現在値を取得してボタンのタイトルとして表示します(下図左)。また、下側はScaleの値をリセット(0にセット)するためのボタンで、クリックすると値を0に設定します(下図右)。

値の取得・セット

[↑ 目次へ]


【スポンサーリンク】


ScaleでWindowsの音量調整をする方法

より具体的な使用例として、ScaleでWindowsの音量調整を行う方法を以下に示します。実行するには事前にpycawモジュールをインストールしておく必要があります。※ここではpycawの詳細は紹介しません。

Master volume setting scale for windows

実行するとScaleのみが表示され、スライドバーを動かすとWindowsの音量調整が行われます。

Scaleを用いたWindowsの音量調整

この例では、commandオプションでスライドバー移動時に実行する関数(set_volume)を設定し、その中でWindowsの音量設定を行っています。設定した関数には自動でスライドバーの現在値が渡されるので、関数側での引数設定を忘れないように注意してください。また、Scaleから渡される値は文字列のため、計算等を行う場合は数値へ変換しておく必要もあります。

[↑ 目次へ]


【スポンサーリンク】


オプション・メソッド

主なオプション・メソッド 動作
command スライドバー移動時に実行する関数を設定
orient スライドバーの向きを設定 縦:"vertical"(デフォルト) 、横:"horizontal"
variable variableの設定
from_, to, resolution 数値の最小値、最大値、刻み量の設定
background(bg) 背景色(green, black, yellow, cyan, magenta, red, blue, white等)
borderwidth(bd) 境界幅
relief 縁の3D表示設定(flat, raised, sunken, groove, ridge)
foreground(fg) 文字の色の設定(green, black, yellow, cyan, magenta, red, blue, white等)
font フォントの設定(Times, Helvetica等)
.get 現在の値を取得
.set 値を設定

[↑ 目次へ]


【スポンサーリンク】