アプリを作るとき、現在の状態やユーザーに伝えたい情報を表示する「ステータスバー」があると便利ですよね。今回は、PythonのTkinterを使ってステータスバーを作成する方法を紹介します!
また、リアルタイムで情報を更新する方法や、ウィンドウを閉じるボタンの作り方なども解説しますので、ぜひ最後まで読んで実践してみてください!
1. Tkinterでステータスバーを作成する方法
ステータスバーを作るには、Tkinterの**Frame
ウィジェット**を使います。Frame
は、ウィジェットを整理するためのコンテナのようなものです。
ステータスバーの基本コード
まず、ウィンドウを作成した後にFrame
を追加し、ウィンドウの下部に配置します。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("ステータスバー付きアプリ")
root.geometry("400x200")
# ステータスバーの作成
status_bar = tk.Frame(root)
status_bar.pack(side=tk.BOTTOM, fill=tk.X)
# ステータスバーにラベルを追加
status_label = tk.Label(status_bar, text="ステータス: 初期状態")
status_label.pack(side=tk.LEFT)
# ウィンドウのループ開始
root.mainloop()
解説
✅ Frame(root)
でステータスバー用の枠を作成
✅ pack(side=BOTTOM, fill=X)
でウィンドウの下部に横いっぱいに配置
✅ Label(status_bar, text="ステータス: 初期状態")
で情報を表示
このコードを実行すると、ウィンドウの下にシンプルなステータスバーが表示されます!
2. ステータスバーのテキストを動的に変更する
ステータスバーを作っただけでは、情報が固定されてしまいますよね。そこで、config
メソッドを使って、テキストを変更できるようにします。
テキストを更新するコード
# ステータスを変更する関数
def update_status():
status_label.config(text="ステータス: 更新されました")
# ボタンを作成し、クリック時にステータスを変更
update_button = tk.Button(root, text="ステータス更新", command=update_status)
update_button.pack()
解説
✅ config(text="新しいテキスト")
でラベルの内容を変更
✅ ボタンを押すと、update_status
関数が実行され、テキストが変わる
この機能を使えば、アプリの進行状況やユーザーの操作によってステータスを変化させることができます!
3. タイマーを使ってステータスを自動更新する
ユーザーが手動でボタンを押すのではなく、一定時間ごとに自動でステータスを更新したい場合は、after
メソッドを使います。
タイマーを使った自動更新コード
# ステータスを定期的に変更する関数
def auto_update_status():
status_label.config(text="ステータス: タイマーで更新されました")
root.after(1000, auto_update_status) # 1秒後に再実行
# 1秒後に最初の実行
root.after(1000, auto_update_status)
解説
✅ after(1000, auto_update_status)
で、1秒(1000ミリ秒)後に関数を再実行
✅ config
を使って、毎秒ステータスを更新
この方法を使えば、例えば時計アプリ、カウントダウン、リアルタイムの通知機能などを作ることができます!
4. ウィンドウを閉じるボタンを作成する
アプリを作るなら、ユーザーが自由にウィンドウを閉じられるボタンがあると便利ですよね。
ウィンドウを閉じるボタンのコード
# ウィンドウを閉じるボタンを作成
close_button = tk.Button(root, text="閉じる", command=root.destroy)
close_button.pack()
解説
✅ root.destroy()
でウィンドウを閉じる
✅ Button
に command=root.destroy
を設定し、クリックで終了
5. ステータスバー付きアプリの完成版コード
ここまでの内容をすべて組み込んだ完成版コードがこちらです!
import tkinter as tk
# メインウィンドウを作成
root = tk.Tk()
root.title("ステータスバー付きアプリ")
root.geometry("400x200")
# ステータスバーの作成
status_bar = tk.Frame(root)
status_bar.pack(side=tk.BOTTOM, fill=tk.X)
# ステータスバーのラベル
status_label = tk.Label(status_bar, text="ステータス: 初期状態")
status_label.pack(side=tk.LEFT)
# ステータスを変更する関数
def update_status():
status_label.config(text="ステータス: 更新されました")
# ステータスを定期的に変更する関数
def auto_update_status():
status_label.config(text="ステータス: タイマーで更新されました")
root.after(1000, auto_update_status) # 1秒後に再実行
# ステータス更新ボタン
update_button = tk.Button(root, text="ステータス更新", command=update_status)
update_button.pack()
# ウィンドウを閉じるボタン
close_button = tk.Button(root, text="閉じる", command=root.destroy)
close_button.pack()
# 1秒後に自動更新開始
root.after(1000, auto_update_status)
# ウィンドウのループ開始
root.mainloop()
6. まとめ
今回の記事では、Tkinterでステータスバーを作る方法を解説しました!
✅ Frame
を使ってステータスバーを作成
✅ Label
を使ってテキストを表示
✅ config
でステータスを動的に変更
✅ after
を使ってタイマー処理を実装
✅ ウィンドウを閉じるボタンを作成
これらを活用すれば、アプリの状態をユーザーに分かりやすく伝えたり、リアルタイムで更新する機能を簡単に実装できます!
💡 さらに発展させるアイデア
- スライダーを追加して、音量調整機能をつける
- 色を変更できるカラーピッカーを作る
- ステータスバーに現在時刻を表示する
ぜひ、今回のコードを元に、自分のアプリに応用してみてください! 😊✨