(最終更新日:2023年6月)
✔このような方へ向けて書かれた記事となります
「Pythonを使ってデスクトップアプリを開発したい」
「Pythonでデスクトップアプリを作る方法を知りたい」
「Pythonでデスクトップアプリの実例が見たい」
✔当記事を通じてお伝えすること
- Pythonを使ったデスクトップアプリの基本
- Pythonでデスクトップアプリを作成する方法やその応用
- Pythonでデスクトップアプリの実例
当記事では、Pythonを使ったデスクトップアプリ開発の基本から、応用的な使い方まで、実践的な例を交えて詳しく解説しています。
ぜひ最後までご覧ください。
はじめに
こちらでは、Pythonを使用したデスクトップアプリケーション開発の魅力と、この記事で学べることについて説明します。
- Pythonデスクトップアプリの魅力
- 当記事で学べるライブラリ
Pythonデスクトップアプリの魅力
Pythonはその読みやすさと多機能性から様々な分野で使われていますが、デスクトップアプリケーションの開発でもその力を発揮します。
Pythonのデスクトップアプリケーションの魅力は、その簡潔さと視覚的なフィードバックが得られる点にあります。
これにより、初心者でも短期間でアプリケーションを作成し、動作を確認しながら進めることができます。
また、Pythonは豊富なライブラリを持っているため、特別な機能を追加する際も容易です。
当記事で学べるライブラリ
当記事では、Pythonでデスクトップアプリケーションを開発する際に使われる主要なGUIライブラリの基本的な使い方を紹介します。
- Tkinter
- PySimpleGUI
- flet
また、作成したアプリケーションを実行可能なファイルに変換し、配布する方法についても説明します。
最後には、Pythonデスクトップアプリ開発の学習を深めるための書籍もご覧ください。
Tkinterを使ったアプリ作成入門
このセクションでは、Tkinterを用いてデスクトップアプリケーションを作成する基本的な手順を解説します。
- ウィンドウの作成
- ウィジェットの追加
- イベントハンドリング
ウィンドウの作成
Tkinterを使ってアプリケーションを開発する最初のステップは、ウィンドウの作成です。
以下に簡単なコードを示します。
from tkinter import Tk
root = Tk()
root.mainloop()
このコードは新しいウィンドウを開き、そのウィンドウが閉じられるまでプログラムを実行し続けます。
root = Tk()
は新しいウィンドウを作成し、root.mainloop()
はウィンドウが閉じられるまでアプリケーションを実行するコードです。
ウィジェットの追加
ウィンドウが作成できたら、次にウィジェット(ボタン、ラベル、テキストボックスなど)を追加しましょう。
以下にボタンを追加するコードを示します。
from tkinter import Tk, Button
root = Tk()
button = Button(root, text='Click Me!')
button.pack()
root.mainloop()
新たにButtonウィジェットを作成し、’Click Me!’というテキストをボタンに表示。
button.pack()
はボタンをウィンドウに追加しています。
イベントハンドリング
ボタンをクリックしたときなどのイベントを処理する方法を学びます。
以下は、ボタンをクリックしたときにメッセージを表示するコードを示す例です。
from tkinter import Tk, Button, messagebox
def show_message():
messagebox.showinfo('Information', 'Button was clicked!')
root = Tk()
button = Button(root, text='Click Me!', command=show_message)
button.pack()
root.mainloop()
ここではshow_message
という関数を定義し、ボタンがクリックされたときにその関数が呼ばれるように設定。
ボタンがクリックされると、メッセージボックスが表示されます。
PySimpleGUIでアプリ開発入門
次に、PySimpleGUIを使用してPythonでデスクトップアプリケーションを作成する方法について説明します。
Tkinterと比べてコードがシンプルで、初心者にも扱いやすいのが特徴です。
- ウィンドウの作成
- ウィジェットの追加
- イベントハンドリング
ウィンドウの作成
PySimpleGUIを使ったウィンドウの作成方法を見てみましょう。
下記は基本的なコードです。
import PySimpleGUI as sg
layout = [ [sg.Text("Hello from PySimpleGUI")] ]
window = sg.Window("Demo", layout)
event, values = window.read()
window.close()
コードの解説です。
- レイアウト:ウィジェットのリストのリストで、各内部リストがウィンドウの一行を表す
sg.Window
:ウィンドウを作成し、window.read()
でイベントを待つ
ウィジェットの追加
レイアウトにウィジェットを追加することで、ボタンやテキストボックスなどを配置できます。
以下のコードはボタンを追加した例です。
import PySimpleGUI as sg
layout = [
[sg.Text("Hello from PySimpleGUI")],
[sg.Button("Click Me")]
] window = sg.Window("Demo", layout) event, values = window.read() window.close()
レイアウトに新たにsg.Button("Click Me")
を追加することで、”Click Me”というラベルのボタンが作成されます。
イベントハンドリング
PySimpleGUIでは、window.read()
を用いてイベントを処理します。
ボタンをクリックしたときにメッセージボックスを表示しましょう。」
import PySimpleGUI as sg
layout = [
[sg.Text("Hello from PySimpleGUI")],
[sg.Button("Click Me")]
] window = sg.Window("Demo", layout) while True: event, values = window.read() if event == "Click Me": sg.popup('Button was clicked!') if event == sg.WINDOW_CLOSED: break window.close()
無限ループ内でwindow.read()
を呼び出し、各イベントをチェック。
“Click Me”ボタンがクリックされると、メッセージボックスが表示されます。
ウィンドウが閉じられたら、ループを抜ける仕組みです。
fletでアプリ開発入門
fletによるデスクトップアプリ開発の方法をご覧いただきます。
比較的新しいライブラリで、覚えておくととても便利でしょう。
- ウィンドウの作成
- ウィジェットの追加
- イベントハンドリング
実際に作成したアプリの手順やコードはこちらでも解説しています。
ウィンドウの作成
ウィンドウの作成は以下のとおりにします。
import flet as ft
def main(page: ft.Page):
page.title = "タイトル"
page.update()
ft.app(target=main)
事前にpipでfletをインストールしておきましょう。
pip install flet
ウィジェットの追加
パーツを追加する方法はさまざまです。
テキストの入力フォームとボタンを追加してみましょう。
import flet as ft
def main(page: ft.Page):
page.title = "タイトル"
page.update()
#テキストフィールド
input = ft.TextField(label="ラベル")
#ボタン
btn = ft.ElevatedButton("ボタンタイトル")
#パーツの配置
page.add(
ft.Row(
[
input,
],
),
ft.Row(
[
btn
],
),
)
ft.app(target=main)
パーツを作成するには以下の手順でおこないます。
- パーツ自体を作成
- パーツをウィンドウ上に配置
イベントハンドリング
イベントハンドリングの例としてボタンをクリックしたときの動作を指定します。
一般的にはボタンでイベントを操作することが多いでしょう。
import flet as ft
import pyperclip
def main(page: ft.Page):
page.title = "タイトル"
page.update()
#テキストフィールド
input = ft.TextField(label="ラベル")
#ボタンのイベントハンドラー
def copy_btn_clicked(e):
pyperclip.copy(input.value)
#ボタン
btn = ft.ElevatedButton("ボタンタイトル", on_click=copy_btn_clicked)
#パーツの配置
page.add(ft.Row([input,],),
ft.Row([btn],),)
ft.app(target=main)
実行ファイルの作成方法
Pythonで作成したデスクトップアプリケーションを他の人に配布したい場合、Pythonがインストールされていないコンピュータでも実行できるようにするために、実行ファイルを作成する必要があります。
Pythonで実行ファイルを作成する主な方法として、PyInstallerとcx_Freezeがあります。
- PyInstallerの利用
- cx_Freezeの利用
PyInstallerの利用
まず、PyInstallerの利用方法について見ていきましょう。
PyInstallerはPythonスクリプトをスタンドアローンの実行ファイルに変換するツールで、多くのライブラリとプラットフォームをサポートしています。
PyInstallerを用いて実行ファイルを作成する基本的な手順は以下のとおりです。
- まず、PyInstallerをインストールします。
コマンドラインで以下のコマンドを入力します。
pip install pyinstaller
- 次に、Pythonスクリプトを実行ファイルに変換します。
以下のコマンドを実行します。
pyinstaller your_script.py
- 以上の手順で、
dist/your_script
ディレクトリに実行ファイルが生成されます。
cx_Freezeの利用
次に、cx_Freezeの利用方法について説明します。
cx_FreezeもPythonスクリプトを実行ファイルに変換するツールで、WindowsとmacOSをサポートしています。
cx_Freezeを用いて実行ファイルを作成する基本的な手順は以下のとおりです。
- まず、cx_Freezeをインストールします。
コマンドラインで以下のコマンドを入力します。pip install cx_Freeze
- 次に、Pythonスクリプトを実行ファイルに変換するための設定ファイル(setup.py)を作成します。
- 最後に、以下のコマンドを実行して実行ファイルを生成します。
python setup.py build
- 上記の手順で
build
ディレクトリに実行ファイルが生成されます。
これらの手順を経て、Pythonスクリプトは他のコンピュータでも実行可能なファイルに変換されます。
ただし、これらのツールはPythonのランタイムを包含するため、生成されるファイルは大きくなる可能性があることに注意してください。
Pythonデスクトップアプリの配布方法
Pythonで作成したデスクトップアプリケーションを他の人に配布するための方法について見ていきましょう。
主に、WindowsとMacでの配布方法を説明します。
- Windowsでの配布方法
- Macでの配布方法
Windowsでの配布方法
WindowsでPythonのデスクトップアプリケーションを配布する場合、PyInstallerやcx_Freezeで作成したexeファイルをそのまま配布します。
また、よりユーザーフレンドリーなインストールプロセスを提供するために、インストーラーを作成するツール(例えばInno Setupなど)を利用することも可能です。
Macでの配布方法
MacでPythonのデスクトップアプリケーションを配布する場合、PyInstallerやcx_Freezeで作成した実行可能ファイルをdmgファイルにパッケージ化して配布します。
dmgファイルはMacで一般的に使用されるディスクイメージファイル形式で、アプリケーションのインストールを簡単にするために使われます。
Pythonデスクトップアプリ開発のおすすめ書籍
Pythonでデスクトップアプリケーション開発を学ぶための参考書籍についていくつか紹介します。
これらの書籍は、基本的な概念から応用的なテクニックまで、Pythonによるデスクトップアプリケーション開発について幅広くカバーしています。
- Pythonではじめるデスクトップアプリ開発入門
- Python2年生デスクトップアプリ開発のしくみ
Pythonではじめるデスクトップアプリ開発入門
この書籍は、PythonとTkinterを使用したデスクトップアプリケーション開発の基本を学ぶための優れた入門書です。
GUI設計の基本原則、イベント駆動型プログラミング、ウィジェットの使用方法など、デスクトップアプリ開発に必要な知識が網羅的に説明されています。
Python2年生デスクトップアプリ開発のしくみ
PythonでGUIアプリケーションを作成するためのスキルを一歩進めたい人には、「Python2年生デスクトップアプリ開発のしくみ」がおすすめです。
この書籍では、PySimpleGUIを始めとするいくつかのライブラリが詳細に紹介されており、各ライブラリの特徴や利点を理解するのに役立ちます。
まとめ
Pythonを使ってデスクトップアプリケーションを開発するための基本的なステップと知識をご紹介しました。
- Tkinter
- PySimpleGUI
- flet
GUIライブラリを使ってウィンドウを作成し、ウィジェットを追加してイベントをハンドリングすることで、あなた自身のアプリケーションを作成することが可能になります。
Pythonでデスクトップアプリケーション開発を始めるにあたって、これらの知識とツールを使って、あなたのアイデアを形にしてみてください。