はじめに
Pythonは、幅広い用途で利用される高水準プログラミング言語です。
その中でも、TkinterはPythonに標準で搭載されているGUIツールキットで、手軽にデスクトップアプリケーションを作成することができます。
Pythonでなにか作ってみたいんだけど、何から作ればいいんだろう?と悩んでいませんか?
この記事では、Tkinterを使って簡単なデスクトップアプリの作り方を解説します。初心者の方でも理解しやすいよう、ステップバイステップで進めていきます。
デスクトップアプリとは、PCのアプリだと思ってもらえればOK!
Tkinterの基本
Tkinterとは
Tkinterは、Pythonに標準で含まれているGUIライブラリです。
読み方は「ティーケーインター」です。
ウィンドウやボタン、ラベル、テキストボックスなどのウィジェットを使って、デスクトップアプリケーションを作成できます。
そのシンプルさと使いやすさから、初心者にも適しています。
メリットとデメリット
ライブラリ | メリット | デメリット |
---|---|---|
Tkinter | ・Pythonに標準で付属しているため、インストール不要。 ・シンプルな記述でGUIを作成でき、初心者にも使いやすい。 ・クロスプラットフォーム対応で、Windows、macOS、Linuxで動作可能。 | ・複雑なレイアウトの構築が難しく、凝ったGUIには不向き。 ・他のGUIライブラリに比べて機能が少なく、更新頻度が低い。 |
PyQt | – 豊富なウィジェットと機能を持ち、商用アプリケーションの開発に適している。 | ライセンスが複雑で、商用利用には費用が発生する可能性。 |
Kivy | – マルチタッチ対応で、モバイルアプリケーションの開発に適している。 | 他のライブラリに比べて学習コストが高い。 |
PySimpleGUI | – Tkinterの上位互換で、より簡単にGUIを作成できる。 | ・カスタマイズ性が低く、複雑なアプリケーションには不向き。 ・あるバージョンから有料になった。 |
デスクトップアプリケーションの作り方手順
手順1: ウィンドウの作成
まずは、Tkinterを使ってウィンドウを作成してみましょう。
以下のコードを実行すると、空のウィンドウが表示されます。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("最初のTkinterアプリ")
# ウィンドウの表示
root.mainloop()
コードを入力して実行すると下記の画面になります
コード解説
import tkinter as tk
: import *** as ~~~ の書き方で、***というライブラリをimportして、~~~の名前で呼び出せるようにしています。tk.Tk()
: 新しいウィンドウを作成します。root
という名前で作成したウィンドウを入れています。root.title("最初のTkinterアプリ")
: ウィンドウのタイトルを設定します。root.mainloop()
: ウィンドウを表示し、ユーザーの操作を待ち続けます。
as tk は慣例なので覚えておきましょう!
手順2: ラベルの追加
次に、ウィンドウにラベルを追加してみましょう。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("ラベルの追加")
# ラベルの作成
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
# ウィンドウの表示
root.mainloop()
コードを入力して実行すると下記の画面になります
コード解説
tk.Label(root, text="Hello, Tkinter!")
:root
部分は、どのウィンドウに設置するかを表しており、今回はrootに設置しています。text=で表示させるテキストを設定します。label.pack()
: ラベルをウィンドウに配置します。
手順3: ボタンの追加
続いて、ウィンドウにボタンを追加してみましょう。
ボタンをクリックすると、ラベルのテキストが変更されるようにします。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("ボタンの追加")
# ラベルの作成
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
# ボタンの作成
button = tk.Button(root, text="クリックしてね")
button.pack()
# ウィンドウの表示
root.mainloop()
コードを入力して実行すると下記の画面になります
ボタン押しても何も変化しないから注意!
コード解説
button.pack()
: ボタンをウィンドウに配置します。
手順4: エントリ(テキストボックス)
ユーザーからの入力を受け取るためのエントリウィジェットを追加してみましょう。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("エントリの追加")
# エントリの作成
entry = tk.Entry(root)
entry.pack()
# ボタンの作成
button = tk.Button(root, text="入力を表示")
button.pack()
# ラベルの作成
label = tk.Label(root, text="")
label.pack()
# ウィンドウの表示
root.mainloop()
コードを入力して実行すると下記の画面になります
空白部分に入力できるか確認してみよう!
コード解説
tk.Entry(root)
:root
ウィンドウ内にエントリウィジェット(テキストボックス)を作成します。entry.get()
: エントリウィジェットに入力されたテキストを取得します。今回は、引数が不要なので()
だけで良いです。label.config(text=entry.get())
: エントリに入力されたテキストを取得し、その内容をラベルに表示します。
手順5: チェックボタン
チェックボタンを追加して、選択状態をラベルに表示する例です。
import tkinter as tk
# メインウィンドウの作成
root = tk.Tk()
root.title("チェックボタンの追加")
# チェックボタンの作成
var = tk.BooleanVar()
checkbutton = tk.Checkbutton(root, text="選択してください", variable=var)
checkbutton.pack()
# ラベルの作成
label = tk.Label(root, text="チェックボックスは選択されていません")
label.pack()
# ウィンドウの表示
root.mainloop()
コードを入力して実行すると下記の画面になります
チェックできるか確認してみよう!
コード解説
tk.BooleanVar()
: チェックボタンの状態を保持する変数を作成します。var.get()
: チェックボタンの選択状態を取得します。
ちょいまとめ
以上で、各ウィジェットの配置の基本を終わりとなります。
いかがでしたでしょうか?デスクトップアプリの作成イメージはつきましたか?
まずは各ウィジェットを配置することから初めてみることをおすすめします。
アプリを作ってる感がすごいよね
次は実際に処理を書いていきます
処理の追加
ここでは、実際にボタンを押したときや、チェックボックスを押した際の処理を追加していきます。
関数を使用していくので、ぜひ覚えていきましょう!
ボタン押下時の処理
ボタン押下時に処理を走らせたい時に必要なことは2つです
- ボタン押下時の処理を書く、関数の作成
- ボタン押下時に関数を呼び出す用に設定
関数はdef
を用いて、作成します。
ここでは、ボタン押下時にラベルのテキストを変更する処理を関数に書いていきます。
import tkinter as tk
# ボタンがクリックされたときに実行される関数
def btn_click()
label.config(text="ボタンがクリックされました!")
# メインウィンドウの作成
root = tk.Tk()
root.title("ボタンの追加")
# ラベルの作成
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
# ボタンの作成
button = tk.Button(root, text="クリックしてね", command=btn_click)
button.pack()
# ウィンドウの表示
root.mainloop()
コード解説
def btn_click()
: 自分で作成した関数になり、btn_click
は自分の好きな名前をつけることができます。label.config
:label.
のlabelはラベル作成した12行目に記入したlabelを指しています。command=btn_click
:command= 関数名
でボタン押した際の呼び出す関数を指定することができます。
まとめ
この記事では、Tkinterを使用して簡単なデスクトップアプリケーションを作成する方法を説明しました。
Tkinterを使うことで、Pythonで手軽にGUIアプリケーションを作成することができます。
これらの基本をマスターして、自分のアイデアを形にしてみてください。
PythonとTkinterで、あなたの創造力を活かしたアプリを作りましょう!