PythonのTkinterでトグルボタン(ON/OFFスイッチ)を作成する方法
Pythonには、アプリケーションのさまざまなコンポーネントを構築できる豊富なライブラリやモジュールが用意されています。その中でもTkinterは、GUIベースのアプリケーションを作成・開発するための代表的な標準ライブラリです。Tkinterには、アプリケーションの見た目を魅力的にするための多数のウィジェットや関数、モジュールが含まれており、ボタンウィジェットを使えば特定の処理を簡単に実行できます。
この記事では、アプリケーションの「ナイトモード/デイモード」を切り替えるトグルボタンの作成方法を解説します。トグルボタンを作成するには、まず画像をLabelウィジェットに表示するところから始めます。
次に、ウィンドウの背景色などを変更するためのボタンと関数を定義します。ボタンの状態は何度も切り替えられる必要があるため、グローバル変数 is_on = True を宣言し、この変数によって関数の動作を制御します。
サンプルコード
# tkinterをインポート
from tkinter import *
# ウィンドウのインスタンスを作成
win = Tk()
# タイトルを設定
win.title('Toggle Button Demonstration')
# ウィンドウサイズを設定
win.geometry("700x400")
win.resizable(0, 0)
# ボタンの初期状態をONにするための変数
is_on = True
# メッセージを表示するラベルを作成
label = Label(win, text="Night Mode is On", bg="white", fg="black", font=("Poppins bold", 22))
label.pack(pady=20)
# スイッチを切り替える関数を定義
def button_mode():
global is_on
# ONかOFFかを判定
if is_on:
on_.config(image=off)
label.config(text="Day Mode is On", bg="white", fg="black")
is_on = False
else:
on_.config(image=on)
label.config(text="Night Mode is On", fg="black")
is_on = True
# 使用する画像を定義
on = PhotoImage(file="on.png")
off = PhotoImage(file="off.png")
# ボタンを作成
on_ = Button(win, image=on, bd=0, command=button_mode)
on_.pack(pady=50)
# ウィンドウを実行し続ける
win.mainloop()
実行結果
上記のコードを実行すると、トグルボタンが配置されたウィンドウが表示されます。
ボタンをクリックすると、表示される画像とラベルのテキストが切り替わり、ナイトモードとデイモードが交互に切り替わります。
ポイント解説
- PhotoImage:ON/OFFそれぞれの状態を表す画像を読み込むために使用します。PNG形式の画像に対応しています。
- config()メソッド:ボタンの画像やラベルのテキストなど、すでに作成済みのウィジェットの属性を後から動的に変更できます。
- global変数 is_on:現在のボタンの状態(ON/OFF)を保持し、クリックのたびに真偽値を反転させることでトグル動作を実現しています。
この仕組みを応用すれば、ダークモード切替機能や設定画面のスイッチなど、さまざまなUI要素に展開することが可能です。
-
Tkinterでボタンのテキストサイズをウィンドウに合わせて動的に変更する方法
Tkinterのフレーム内にボタンを作成した際、ボタンのテキストをメインウィンドウのサイズに合わせて動的に拡大・縮小させたいケースはよくあります。ボタン自体はButtonウィジェットを使えば簡単に作成できますが、テキストサイズを動的に変化させるには、いくつかの機能を組み合わせる必要があります。この記事では、テキスト付きのボタンを作成し、Gridメソッドのrowconfigure()とcolumnconfigure()を使って、メインウィンドウ(ルートウィンドウ)のリサイズに追従できるようにする方法を解説します。bind(<Configure>)でイベントを結び付けるボタンのテキスト
-
PythonのTkinterで簡単なメッセージボックスを作成する方法
Tkinterとは Tkinterは、PythonでGUIアプリケーションを作成・開発するための標準ライブラリです。ボタンやラベルなど、アプリケーションに多彩な機能を追加するためのメソッドや関数が豊富に用意されており、ダイアログボックスなどのウィジェットも簡単に作成できます。 この記事では、ポップアップで情報を表示したり、ユーザーに選択肢を提示したりできるシンプルなメッセージボックスの作成方法を解説します。 メッセージボックスの作成例 以下のサンプルコードでは、「Click」ボタンをクリックすると、エラーメッセージと警告メッセージが順番にポップアップ表示されるようにしています。 # 必要なラ