Scaleウィジェットを使ってみよう
今回はScaleウィジェットを使って、スケールから数値を取得してみましょう。
スケールは、スライダーを動かして最小値と最大値の範囲から数値を取得するGUI部品です。
Scaleウィジェットの書式
Scaleウィジェットの使い方は、以下の通りです。
※ tkinterを別名でインポートした場合は、tkinterの部分を別名にしてください。
オブジェクト名 = tkinter.Scale(master=親ウィジェット, オプション)
第1引数はScaleウィジェットの親ウィジェットを指定します。
また、masterは省略することができます。
Scaleウィジェットで使うオプション
Scaleウィジェットで使う主なオプションは、以下の通りです。
オプション名 | 内容 |
from_ | 最小値。デフォルトは0。fromはPythonの予約語なので、fromの後に_(アンダーバー)を付加する |
to | 最大値。デフォルトは100 |
orient | バーの向き。デフォルトは"vertical"(垂直)。"horizontal"を指定すると水平バーになる |
variable | tkinter変数を指定するとtkinter変数に値が格納される |
font | 使用するフォント *1 |
fg/foreground | スケールに表示する文字の色 *2 |
bg/background | 背景の色 *2 |
bd/borderwidth | スケールの枠の幅 |
width | スケールの幅。デフォルトは15。単位はピクセル |
length | スケールの長さ。デフォルトは100。単位はピクセル |
label | スケールに付けるラベル |
relief | スケールの形状。flat、raised、sunken、groove、ridgeを指定。デフォルトはflat *3 |
resolution | 解像度。デフォルトは1。例えば0.01を指定すると小数第2位の値まで取得できる |
command | スライダーを動かした時に呼び出される関数またはメソッド |
*1 指定できるフォントは、tkinter.font.families()で確認できます。
*2 色の指定にはred、green、blueなどのカラー名や先頭に#(シャープ)を付けた16進数が使えます。
*3 スケールの形状は、以下の画像のようになります。
Scaleウィジェットを使ったプログラム
Scaleウィジェットを使ったプログラムは、以下のようになります。
スケールを二つ用意して、その値をラベルに表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
### インポート import tkinter ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x400") ### スケール値設定変数 value1 = tkinter.IntVar() value2 = tkinter.IntVar() ### スケール作成 scale1 = tkinter.Scale(master=main, from_=0, to=100, variable=value1, length=280) scale2 = tkinter.Scale(master=main, from_=0, to=200, variable=value2, length=450, orient="horizontal") ### ラベル作成 label1 = tkinter.Label(master=main, textvariable=value1, font=(None,32), bg="silver", height=3, width=20) label2 = tkinter.Label(master=main, textvariable=value2, font=(None,32), bg="silver", height=3, width=20) ### スケール配置 scale1.place(x=570, y=30) scale2.place(x=80, y=330) ### ラベル配置 label1.place(x=80, y=30) label2.place(x=80, y=180) ### イベントループ main.mainloop() |
プログラムを実行すると、以下のような画面が表示されます。
スライダーを動かすと、その値がラベルに表示されます。