[Python] Tkinterのスライダーの作成方法や使い方を解説
PythonのGUIライブラリであるTkinterを使用すると、簡単にスライダーを作成できます。スライダーは、ユーザーが値を選択するための便利なウィジェットです。
スライダーは、TkinterのScale
クラスを使用して作成されます。Scale
クラスは、水平または垂直のスライダーを提供し、範囲や初期値を設定することが可能です。
スライダーの値は、get()
メソッドを使用して取得できます。また、command
オプションを使用して、スライダーの値が変更されたときに特定の関数を呼び出すこともできます。
スライダーの基本
TkinterはPythonの標準GUIライブラリで、簡単にウィンドウアプリケーションを作成することができます。
その中で「スライダー」は、ユーザーが数値を選択するための便利なウィジェットです。
スライダーを使うことで、ユーザーは直感的に値を調整でき、特に音量や明るさなどの設定に役立ちます。
スライダーは、最小値から最大値の範囲内で動かすことができ、選択した値をリアルタイムで取得することが可能です。
これにより、ユーザーインターフェースがよりインタラクティブで使いやすくなります。
Tkinterでスライダーを作成する方法
Tkinterのスライダーウィジェット (Scale)
Tkinterのスライダーウィジェットは、Scaleクラス
を使用して作成します。
このウィジェットは、ユーザーがスライダーを動かすことで数値を選択できるインターフェースを提供します。
スライダーは、水平または垂直の方向に配置することができ、さまざまなアプリケーションで利用されます。
スライダーの基本的な作成方法
以下は、Tkinterを使用して基本的なスライダーを作成するサンプルコードです。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーの例")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100)
slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、0から100までの範囲のスライダーが表示されます。

ユーザーはスライダーを動かして値を選択できます。
スライダーのオプション設定
スライダーにはさまざまなオプションを設定することができます。
以下に主要なオプションを示します。
オプション名 | 説明 |
---|---|
from_ | スライダーの最小値を設定します。 |
to | スライダーの最大値を設定します。 |
orient | スライダーの方向を設定しますhorizontal またはvertical 。 |
length | スライダーの長さをピクセル単位で設定します。 |
tickinterval | スライダーの目盛りの間隔を設定します。 |
from_オプション
from_
オプションは、スライダーの最小値を設定します。
例えば、from_=0
と設定すると、スライダーは0から始まります。
toオプション
to
オプションは、スライダーの最大値を設定します。
例えば、to=100
と設定すると、スライダーは100まで動かすことができます。
orientオプション
orient
オプションは、スライダーの方向を指定します。
orient='horizontal'
で水平、orient='vertical'
で垂直のスライダーを作成できます。
lengthオプション
length
オプションは、スライダーの長さをピクセル単位で指定します。
例えば、length=300
と設定すると、スライダーの長さは300ピクセルになります。
tickintervalオプション
tickinterval
オプションは、スライダーの目盛りの間隔を設定します。
例えば、tickinterval=10
と設定すると、10ごとに目盛りが表示されます。
スライダーのイベント処理
スライダーの値を取得する方法
Tkinterのスライダーから現在の値を取得するには、get()メソッド
を使用します。
このメソッドを呼び出すことで、スライダーが現在指している値を簡単に取得できます。
以下は、スライダーの値を取得するサンプルコードです。
import tkinter as tk
def show_value():
current_value = slider.get()
print(f"現在のスライダーの値: {current_value}")
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーの値取得例")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100)
slider.pack()
# ボタンの作成
button = tk.Button(root, text="値を表示", command=show_value)
button.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、スライダーの値を取得して表示するボタンが作成されます。
ボタンをクリックすると、現在のスライダーの値がコンソールに表示されます。

現在のスライダーの値: 46
スライダーの値が変わったときのイベント処理
スライダーの値が変わったときに特定の処理を行いたい場合、command
オプションを使用して関数を指定します。
この関数は、スライダーの値が変更されるたびに呼び出されます。
以下は、スライダーの値が変わったときにメッセージを表示するサンプルコードです。
import tkinter as tk
def on_value_change(value):
print(f"スライダーの値が変更されました: {value}")
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーのイベント処理例")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100, command=on_value_change)
slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、スライダーの値が変更されるたびに、その値がコンソールに表示されます。
スライダーの値をリアルタイムで表示する方法
スライダーの値をリアルタイムで表示するためには、ラベルウィジェットを使用してスライダーの値を更新することができます。
以下は、スライダーの値をリアルタイムでラベルに表示するサンプルコードです。
import tkinter as tk
def update_label(value):
label.config(text=f"現在の値: {value}")
# メインウィンドウの作成
root = tk.Tk()
root.title("リアルタイム表示例")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100, command=update_label)
slider.pack()
# ラベルの作成
label = tk.Label(root, text="現在の値: 0")
label.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、スライダーを動かすたびにラベルに現在の値がリアルタイムで表示されます。

これにより、ユーザーはスライダーの動きに応じた値を即座に確認できます。
スライダーの応用例
音量調整スライダーの作成
音量調整スライダーは、ユーザーが音量を直感的に調整できるインターフェースを提供します。
以下は、音量を調整するためのスライダーを作成するサンプルコードです。
import tkinter as tk
def adjust_volume(value):
print(f"音量: {value}")
# メインウィンドウの作成
root = tk.Tk()
root.title("音量調整スライダー")
# 音量スライダーの作成
volume_slider = tk.Scale(root, from_=0, to=100, orient='horizontal', command=adjust_volume, label="音量")
volume_slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、音量を0から100まで調整できるスライダーが表示され、スライダーを動かすことで音量の値がコンソールに表示されます。

色調整スライダーの作成
色調整スライダーは、RGBの各成分を調整するために使用されます。
以下は、赤、緑、青の色成分を調整するスライダーを作成するサンプルコードです。
import tkinter as tk
def update_color():
r = red_slider.get()
g = green_slider.get()
b = blue_slider.get()
color = f'#{r:02x}{g:02x}{b:02x}'
color_display.config(bg=color)
# メインウィンドウの作成
root = tk.Tk()
root.title("色調整スライダー")
# 赤、緑、青のスライダーの作成
red_slider = tk.Scale(root, from_=0, to=255, orient='horizontal', command=lambda x: update_color(), label="赤")
red_slider.pack()
green_slider = tk.Scale(root, from_=0, to=255, orient='horizontal', command=lambda x: update_color(), label="緑")
green_slider.pack()
blue_slider = tk.Scale(root, from_=0, to=255, orient='horizontal', command=lambda x: update_color(), label="青")
blue_slider.pack()
# 色表示用ラベルの作成
color_display = tk.Label(root, text="色表示", width=20, height=5)
color_display.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、赤、緑、青のスライダーが表示され、スライダーを動かすことで背景色がリアルタイムで変わります。

画像の明るさ調整スライダーの作成
画像の明るさを調整するスライダーは、画像処理アプリケーションでよく使用されます。
以下は、画像の明るさを調整するスライダーを作成するサンプルコードです。
ここでは、PIL(Pillow)ライブラリを使用して画像を処理します。
import tkinter as tk
from PIL import Image, ImageTk, ImageEnhance
def update_brightness(value):
enhancer = ImageEnhance.Brightness(original_image)
bright_image = enhancer.enhance(float(value) / 100)
img_label.config(image=ImageTk.PhotoImage(bright_image))
# メインウィンドウの作成
root = tk.Tk()
root.title("画像の明るさ調整")
# 画像の読み込み
original_image = Image.open("example.jpg") # 画像ファイル名を指定
img_label = tk.Label(root)
img_label.pack()
# 明るさスライダーの作成
brightness_slider = tk.Scale(root, from_=0, to=200, orient='horizontal', command=update_brightness, label="明るさ")
brightness_slider.set(100) # 初期値を100に設定
brightness_slider.pack()
# 初期画像の表示
update_brightness(100)
# メインループの開始
root.mainloop()
このコードを実行すると、指定した画像の明るさを0から200の範囲で調整できるスライダーが表示されます。
スライダーを動かすことで、画像の明るさがリアルタイムで変わります。
画像ファイル名は適宜変更してください。
スライダーのデザインカスタマイズ
スライダーの色を変更する方法
Tkinterのスライダーの色を変更するには、bg
(背景色)やfg
(前景色)オプションを使用します。
以下は、スライダーの色を変更するサンプルコードです。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーの色変更")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100, bg='lightblue', fg='red')
slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、背景色が水色、スライダーの前景色が赤色のスライダーが表示されます。

色は任意の色名や16進数カラーコードで指定できます。
スライダーの幅を変更する方法
スライダーの幅を変更するには、slider_width
オプションを使用します。
以下は、スライダーの幅を変更するサンプルコードです。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーの幅変更")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100, sliderlength=30, length=300)
slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、スライダーの幅が300ピクセルに設定され、スライダーのつまみ部分の長さが30ピクセルになります。

sliderlength
オプションでつまみの長さを調整できます。
スライダーのスタイルを変更する方法
Tkinterのスライダーのスタイルを変更するには、highlightthickness
やborderwidth
オプションを使用して、外観をカスタマイズできます。
以下は、スライダーのスタイルを変更するサンプルコードです。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("スライダーのスタイル変更")
# スライダーの作成
slider = tk.Scale(root, from_=0, to=100, highlightthickness=2, borderwidth=5, relief='raised')
slider.pack()
# メインループの開始
root.mainloop()
このコードを実行すると、スライダーに2ピクセルのハイライト厚さと5ピクセルのボーダー幅が設定され、立体的な外観になります。

relief
オプションを使用して、スライダーの外観を変更することもできます。
flat
、raised
、sunken
などのスタイルを指定できます。
まとめ
この記事では、Tkinterを使用してスライダーを作成し、さまざまなカスタマイズ方法や応用例について解説しました。
スライダーの基本的な使い方から、色や幅、スタイルの変更方法、さらにはイベント処理の方法まで幅広く学ぶことができました。
ぜひ、これらの知識を活用して、インタラクティブなアプリケーションを作成してみてください。