【Python】第9章第8回:デスクトップアプリ(TkinterとPyQt)
Warning: preg_match(): Compilation failed: regular expression is too large at offset 47708 in /home/wp769435/a-mun.com/public_html/wp-content/plugins/easy-table-of-contents/easy-table-of-contents.php on line 1806

本記事では、Pythonを使ったデスクトップアプリケーション開発について解説します。TkinterとPyQtという2つの主要ライブラリを比較しながら、GUI(Graphical User Interface)アプリの作成方法を学びます。
0. 記事の概要
この記事を読むメリット
- GUIアプリ開発の基礎を理解:デスクトップアプリの構造や設計を学べます。
- 主要ライブラリの比較:TkinterとPyQtの違いを把握し、適切な選択が可能になります。
- 実践スキルの向上:簡単なデスクトップアプリを自作できるようになります。
この記事で学べること
- デスクトップアプリ開発の基本概念
- TkinterとPyQtのインストールと基本的な使い方
- シンプルなGUIアプリの実装例
1. デスクトップアプリ開発の基本とは?

1.1 デスクトップアプリとは?
- GUIアプリ開発の基礎を理解:デスクトップアプリの構造や設計を学べます。
- 主要ライブラリの比較:TkinterとPyQtの違いを把握し、適切な選択が可能になります。
- 実践スキルの向上:簡単なデスクトップアプリを自作できるようになります。
この記事で学べること
- デスクトップアプリ開発の基本概念
- TkinterとPyQtのインストールと基本的な使い方
- シンプルなGUIアプリの実装例
1. デスクトップアプリ開発の基本とは?

1.1 デスクトップアプリとは?

1.1 デスクトップアプリとは?
デスクトップアプリケーションとは、ローカル環境で動作するソフトウェアのことです。代表例には以下があります。
- メモ帳や電卓
- ブラウザやメディアプレイヤー
- タスク管理や作業支援ツール
1.2 デスクトップアプリの構造
典型的なデスクトップアプリの構造は以下の通りです。
- ウィンドウ管理: アプリの画面部分を管理。
- イベント処理: ボタン操作やキーボード入力の反応。
- バックエンド: データ処理やファイル操作。
2. TkinterとPyQtの使い方

2.1 Tkinterの基本

TkinterはPythonに標準搭載されているGUIライブラリで、以下の特徴があります。
- インストール不要。
- 軽量で初心者に優しい設計。
- シンプルなアプリに最適。
2.2 PyQtの基本
PyQtはQtフレームワークをPythonで利用するためのライブラリで、以下の特徴があります。
- 高機能でプロ仕様のアプリに対応。
- 洗練されたデザインが可能。
- クロスプラットフォームで動作。
2.3 コード例で比較
# Tkinterでウィンドウを作成
import tkinter as tk
# ウィンドウを生成
root = tk.Tk()
root.title("Tkinterウィンドウ")
root.geometry("400x300")
# ラベルを表示
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
# 実行
root.mainloop()
# PyQtでウィンドウを作成
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
import sys
# アプリケーションを生成
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("PyQtウィンドウ")
window.setGeometry(100, 100, 400, 300)
# ラベルを表示
label = QLabel("Hello, PyQt!", window)
label.move(150, 130)
# 実行
window.show()
sys.exit(app.exec_())
動作解説
# Tkinterでウィンドウを作成
import tkinter as tk
# ウィンドウを生成
root = tk.Tk()
root.title("Tkinterウィンドウ")
root.geometry("400x300")
# ラベルを表示
label = tk.Label(root, text="Hello, Tkinter!")
label.pack()
# 実行
root.mainloop()
# PyQtでウィンドウを作成
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
import sys
# アプリケーションを生成
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle("PyQtウィンドウ")
window.setGeometry(100, 100, 400, 300)
# ラベルを表示
label = QLabel("Hello, PyQt!", window)
label.move(150, 130)
# 実行
window.show()
sys.exit(app.exec_())
- Tkinter: 軽量で簡単にウィンドウやラベルを表示できます。
- PyQt: 洗練されたウィンドウや高機能なGUIを作成可能。
3. 実践例:簡単な電卓アプリの作成

3.1 サンプルコード
# Tkinterで簡単な電卓アプリを作成
import tkinter as tk
def calculate():
result = eval(entry.get())
label_result.config(text=f"結果: {result}")
# ウィンドウを生成
root = tk.Tk()
root.title("電卓アプリ")
# 入力フィールド
entry = tk.Entry(root, width=20)
entry.pack()
# 計算ボタン
button = tk.Button(root, text="計算", command=calculate)
button.pack()
# 結果ラベル
label_result = tk.Label(root, text="結果: ")
label_result.pack()
# 実行
root.mainloop()
動作解説
- Entry: 入力フィールドを作成します。
- Button: ボタンを押すと計算処理が実行されます。
- Label: 計算結果を表示します。
4. 練習問題

# Tkinterで簡単な電卓アプリを作成
import tkinter as tk
def calculate():
result = eval(entry.get())
label_result.config(text=f"結果: {result}")
# ウィンドウを生成
root = tk.Tk()
root.title("電卓アプリ")
# 入力フィールド
entry = tk.Entry(root, width=20)
entry.pack()
# 計算ボタン
button = tk.Button(root, text="計算", command=calculate)
button.pack()
# 結果ラベル
label_result = tk.Label(root, text="結果: ")
label_result.pack()
# 実行
root.mainloop()
動作解説
以下の課題に挑戦してみましょう。
- ボタンを追加して「リセット」機能を作成してください。
- PyQtで同じ電卓アプリを作成してください。
5. 練習問題の解答と解説
問1の解答例
# リセットボタンを追加
def reset():
entry.delete(0, tk.END)
label_result.config(text="結果: ")
reset_button = tk.Button(root, text="リセット", command=reset)
reset_button.pack()
6. まとめ
# リセットボタンを追加
def reset():
entry.delete(0, tk.END)
label_result.config(text="結果: ")
reset_button = tk.Button(root, text="リセット", command=reset)
reset_button.pack()
6. まとめ
本記事では、Pythonを使ったデスクトップアプリ開発の基本を学びました。TkinterとPyQtを活用し、簡単なアプリから始めてオリジナルのアプリケーション開発に挑戦してみてください。