はじめに
今回はTkinter使い方の使い方です。
ちょくちょくPythonでUIを使いたいなと思う事があったため、今回はその方法についての備忘録を残すことにしました。
簡単な構成になっているのでとにかくパッと作りたいという方の参考になるかなと思います。
Tkinterについて
Tkinterとは
Tkinterは、Pythonの標準ライブラリの一部として提供される、GUIアプリケーションを作成するためのツールキットです。Tcl/Tkをベースとしており、Pythonのスクリプトから直感的にGUIを作成することができます。
基本的なコンポーネント
- Window(ルートウィンドウ):
- GUIアプリケーションのメインウィンドウです。
- Widgets:
- GUIアプリケーションの部品(ボタン、ラベル、テキストボックスなど)を指します。
以前エラーに関する記事を書きましたが、ルートウィンドウは消さない様にしましょう(エラーになります)
Tkinterでの基本的な流れ
- ルートウィンドウを作成する。
- 必要なウィジェットをウィンドウに追加する。
- イベントループを開始する。
サンプルプログラム
以下は、Tkinterを使ったシンプルなウィンドウにラベルとボタンを配置するサンプルプログラムです。
起動すると次の様なUIが表示されます。
Say Helloをクリックするとテキストボックスが表示され、
再度Say Helloを押すと入力した名前で挨拶してくれます。
…これだけでは大した役には立ちませんw
とはいえ、基本的な使い方なので都度必要に合わせて変更してもらえればと
次がサンプルプログラムになります
import tkinter as tk
def on_button_click():
label.config(text="Hello, " + name_entry.get() + "!")
# ルートウィンドウの作成
root = tk.Tk()
root.title("Simple Tkinter App")
# ラベルの追加
label = tk.Label(root, text="Enter your name:")
label.pack(pady=20)
# テキストボックスの追加
name_entry = tk.Entry(root)
name_entry.pack(pady=10)
# ボタンの追加
button = tk.Button(root, text="Say Hello", command=on_button_click)
button.pack(pady=20)
# イベントループの開始
root.mainloop()
実行結果はすでに表示した通りです。
Tips
TKinterに関するTipsです。
- ウィジェットの配置は、
pack()
,grid()
, またはplace()
のいずれかのメソッドを使用して行われます。上記のサンプルではpack()
を使用していますが、複雑なレイアウトを作成する場合はgrid()
の方が適していることが多いです。 - イベント駆動型のプログラムなので、ユーザーのアクション(ボタンクリックやキーの入力など)に応じて関数やメソッドが呼び出されることを意識する必要があります。
- 大きなプログラムやアプリケーションを作成する場合は、クラスを使用してコードを構造化することを検討してみてください。
この基本的を押さえる事が出来れば、さらに多くのウィジェットや機能と組み合わせてる事でより複雑なGUIアプリケーションを作成することができます。
さいごに
今回はPythonのTkinterについての使い方でした。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。