Python+Tkinter+SQLite3で、デスクトップアプリを作ろう
エディタは「SVコード」を使用
Contents
概要
本書「Pythonでデスクトップアプリを作ろう」では、プログラミング言語「Python」を使って、パソコンのデスクトップ上で動作する「デスクトップアプリ」の作り方を解説します。
Pythonでデスクトップアプリを作成する方法はいくつかありますが、本書では「Tkinter」を使います。Tkinterは、Pythonに標準で付属する唯一のGUIライブラリです。ですから、標準的なPythonのプログラミング環境であれば、すぐに使うことができます。
本書の後半では、データベース管理システムの「SQLite3」を利用する、少しだけ本格的なアプリを作成します。このSQLite3もTkinterと同様、Pythonに標準で付属します。
現時点で、「Python+Tkinter+SQLite3」は、最も手軽にデスクトップアプリを作成できる組み合わせの一つと言ってよいでしょう。ぜひ本書でPython+Tkinter+SQLite3の基礎を学び、役に立つ、面白いオリジナルのデスクトップアプリを作成してみてください。
Tkinter
Tkinter(ティーキンター)は、Pythonに標準で搭載されているGUI(グラフィカルユーザーインターフェース)作成のためのライブラリで、ボタンやテキストボックスなどの部品(ウィジェット)を使ってデスクトップアプリケーションを簡単に作れます。Tcl/Tkをベースにしており、Pythonの学習初期段階でも扱いやすいシンプルさと、Windows、macOS、Linuxで動作するクロスプラットフォーム性が特徴です。
主な特徴
Python標準:Pythonをインストールすれば追加のインストールなしで利用可能。
シンプル:文法が分かりやすく、プログラミング初心者でもGUI開発を始めやすい。
クロスプラットフォーム:主要なOSで動作するアプリケーションを作成できる。
ウィジェット:ボタン、ラベル、テキストボックス、メニューなど様々な部品を提供。
ttkモジュール:よりモダンな見た目のウィジェットを使いたい場合は tkinter.ttk を利用する。
基本的な使い方
インポート:import tkinter as tk でライブラリを読み込む。
ルートウィンドウ作成:tk.Tk() でメインウィンドウを作成。
ウィジェット作成:tk.Button(…) や tk.Label(…) などで部品を作成。
配置:pack()、grid()、place() などのジオメトリマネージャで画面に配置。
イベントループ開始:root.mainloop() でアプリケーションを開始し、ユーザーの操作を待機。
プログラム事例
1枚のウインドウを表示する
第1部 2章 P19 list01.txt → windows.py
Python+Tkinter(ティーキンター)
Hello Windowというタイトルの250*120のウインドウを作成
# Tkinterをインポート
import tkinter as tk
# Tkオブジェクトを生成
root = tk.Tk()
# ウインドウのタイトルを設定
root.title('Hello Window')
# ウインドウの内部のサイズを設定
root.geometry('250x120')
# トップレベルウインドウを表示
root.mainloop()
結果の画像

BMI計算機
第2部 1章 P106 bmi_app.py
mport tkinter as tk
# BMIの計算
def calc(weight, height):
return weight / (height**2)
# 判定
def check(bmi):
if bmi < 18.5: return '低体重'
elif bmi < 25.0: return '普通体重'
elif bmi < 30.0: return '肥満度1'
elif bmi < 35.0: return '肥満度2'
elif bmi < 40.0: return '肥満度3'
else: return '肥満度4'
# ハンドラ関数
def judgement():
w = float(weight.get())
h = float(height.get()) / 100
label_5['text'] = check(calc(w, h))
# トップレベルウインドウの生成
root = tk.Tk()
# ウインドウのサイズ変更を不可に
root.resizable(width=False, height=False)
root.title('BMI App')
root.geometry('250x150')
# Labelウィジェットの生成
label_1 = tk.Label(root, text='体重')
label_2 = tk.Label(root, text='kg')
label_3 = tk.Label(root, text='身長')
label_4 = tk.Label(root, text='cm')
label_5 = tk.Label(
root,
text='体重と身長を入力してください。')
# Entryウィジェットの生成
weight = tk.Entry(width=5)
height = tk.Entry(width=5)
# Buttonウィジェットの生成
button = tk.Button(
root,
text='BMI判定',
command=judgement)
# 各列の割合を指定
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=1)
root.columnconfigure(2, weight=1)
# 各行の割合を指定
root.rowconfigure(0, weight=1)
root.rowconfigure(1, weight=1)
root.rowconfigure(2, weight=1)
root.rowconfigure(3, weight=1)
# grid関数でウィジェットを配置
label_1.grid(column=0, row=0, sticky=tk.E)
weight.grid(column=1, row=0)
label_2.grid(column=2, row=0, sticky=tk.W)
label_3.grid(column=0, row=1, sticky=tk.E)
height.grid(column=1, row=1)
label_4.grid(column=2, row=1, sticky=tk.W)
button.grid(column=0, row=2, columnspan=3)
label_5.grid(column=0, row=3, columnspan=3)
root.mainloop()
結果の画像

内容
第1部 基礎編
第1章 Python+Tkinterならデスクトップアプリを簡単に作成できる
第2章 1枚のウインドウを表示するだけのアプリを作る
第3章 GUIの部品=ウィジェットを配置する
第4章 「イベントドリブン」でユーザーの操作に対応する
第2部 アプリ作成 基本編
第1章 BMI計算機

第2章 カウントダウンタイマー

第3章 4択クイズ

第4章 割り勘計算機

第5章 お絵描きアプリ

第6章 神経衰弱ゲーム

第3部 アプリ作成 応用編
第1章 SQLite3入門
第2章 カレンダー型メモアプリ/
第3章 蔵書管理アプリ
講座1 Pythonプログラムのexe化
講座2 ttk版ウィジェットのテーマを変える



コメント