Python学院
メールマガジンバックナンバー

vol.67

  • コツ・知識
  • メールマガジン

アプリもPythonで作れる?Tkinter で簡単なデスクトップアプリを作成してみました!

今回のテーマは「Python(Tkinter)を用いたデスクトップアプリケーションの開発」です。

(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1、デスクトップアプリケーションとは?
■デスクトップアプリケーションとは何か
■どのようなデスクトップアプリケーションがあるのか?
■Pythonではどのようなライブラリでデスクトップアプリケーションを作成できるか?
2、Tkinterとは?どのようなことができるの?
■Tkinterの特徴
■Tkinterでできること
3、Tkinterを用いて簡単なデスクトップアプリを作成してみよう!
■作成するアプリケーションの説明
■コードのご紹介
■コードの説明
4、おわりに
~~~~~~~~~~~~~~~~~~~

1.デスクトップアプリケーションとは?

■デスクトップアプリケーションとは何か
PCなどのデスクトップ環境上で動作するアプリケーションのことです。
インストールして利用するため、インターネットに接続しなくても利用できるという
メリットがあります。

■どのようなデスクトップアプリケーションがあるのか?
例①スプレッドシート
表形式のデータを作成・編集・計算できるアプリケーションで、
Microsoft Excel、Google Spreadsheetsなどがあります。
※Google SpreadsheetsはGoogle LLCの米国およびその他の国における登録商標または商標です。

例②ビデオ編集ソフト
動画の編集やクリップの結合、効果の追加などができるアプリケーションで、
Adobe Premiere Pro、iMovieなどがあります。

■Pythonではどのようなライブラリでデスクトップアプリケーションを作成できるか?
Pythonでデスクトップアプリケーションを作成できるライブラリはいくつかございます。
今回は3つご紹介いたします。
①Tkinter(ティーケインター)
Pythonに標準で付属しているGUIライブラリで、Pythonの経験の浅い方にも扱いやすいです。
②PyQt(パイキューティー)
C++向けのGUIフレームワークをPythonで使用できるようにしたライブラリです。
商用利用時に注意は必要なものの、開発には非常に優れています。
③Kivy(キビィ)
同一の内容でPC向けだけではなく、
スマートフォンやタブレット向けアプリケーションも作成できるライブラリです。


2.Tkinterとは?どのようなことができるの?

今回は、1章でご紹介した「Tkinter」を使用して、
第3章で、簡単なデスクトップアプリケーションを作成してみます。
そのための準備として、第2章では「Tkinter」についてご紹介します。

■Tkinterの特徴
第1章でご説明した通り、Pythonに標準で付属しており、
簡単にデスクトップアプリケーションを作成できます。
ボタン、ラベル、テキストボックス、ラジオボタン、チェックボックスなどを組み合わせて
デスクトップアプリケーションを作成できます。

■Tkinterでできること
・キッチンタイマー
・計算結果を出力する(割り勘した際の支払い費用やBMIの計算 など)
・入力した文字数を数える
・ファイルやフォルダを選択する
上記の機能が搭載されたデスクトップアプリケーションを作成することができます。


3.Tkinterを用いて簡単なデスクトップアプリを作成してみよう!

■作成するアプリケーションの説明
以前Webアプリケーションを作成するメルマガで使用した、
割り勘アプリをデスクトップアプリケーションでも作成してみます。
→Webアプリケーションを作成するメルマガはコチラ

■コードのご紹介
今回のコードは、以下の方を対象にしております。
①最低限のPythonの知識がある
Pythonの基礎知識を身につけられる方法はコチラ
②「jupyter notebook」や「google colaboratory」などでPythonのコードを書ける環境にある
GoogleColaboratoryの始め方について記載している過去のメルマガはコチラ

【コード】

#⓪ライブラリのインポート
import tkinter as tk
from tkinter import messagebox as mbox

#①ボタンを押したときの処理
def calc():
     # 1人当たりの費用を計算
     total = float(texttotal.get())
     number_of_people = float(textpeople.get())
     split_the_bill = total / number_of_people

     # 結果をラベルに表示
     s = f"1人あたり{split_the_bill}円".format()
     labelResult['text'] = s

#②ウィンドウを作成
win = tk.Tk()
win.title("割り勘アプリ")
win.geometry("500x250")

#③ウィンドウの中身を作成
labeltotal = tk.Label(win, text=u'合計金額:')
labeltotal.pack()

labelpeople = tk.Label(win, text=u'人数:')
labelpeople.pack()

labelResult = tk.Label(win, text=u'---')
labelResult.pack()

calcButton = tk.Button(win, text=u'結果を見る!')
calcButton["command"] = calc
calcButton.pack()

#④質問内容を記載
texttotal = tk.Entry(win)
texttotal.insert(tk.END, input('合計金額は?:'))
texttotal.pack()

textpeople = tk.Entry(win)
textpeople.insert(tk.END, input('何人で割る?:'))
textpeople.pack()

#⑤ウィンドウを動かす
win.mainloop()


上記を実行いただくと以下の画面が出てきます。


今回は「合計金額は?:」に3,000、「何人で割る?:」に3と入力すると、
以下の画面が現れます。


そして、「結果を見る!」を押すと「1人あたり○○円」と出てきます。
上記はボタンを押した後の画像なので、「1人あたり1000.0円」と出力されています。

※PCの環境によっては、実行できない場合もございますので、
予めご了承くださいませ。

■コードの説明
コードがどのような動きをしているのかを、
簡単にご紹介いたします。

⓪ライブラリのインポート
必要なライブラリをインポートします。
①ボタンを押したときの処理
「結果を見る!」というボタンを押したときの計算方法が記載されています。
また出力する際の言葉もここに記載しています。
②ウィンドウを作成
右上に「割り勘アプリ」と書かれている画面を作成しています。
③ウィンドウの中身を作成
②で作成した画面の中に、入力する内容と結果を出力するボタンを作成しています。
④質問内容を記載
「合計金額は?:」と「何人で割る?:」という質問をしています。
⑤ウィンドウを動かす
④の質問に回答後、ウィンドウが開くようになっています。



4.おわりに

今回は、「デスクトップアプリケーションとTkinter」についてご紹介しました。
次回は「自社でPythonを用いて業務改善をした例」をお伝えいたします。
ぜひ次回もご覧くださいませ。

今回も画像生成AIに、ある言葉を入れて以下の画像を作成しました!
解答は、この記事の右下に記載しております。


本日も最後までお読みいただき、ありがとうございます!
それでは、次回もお楽しみに!

A. ヒマワリ


関連研修