Pythonを使って独自の重量換算ツールを構築する

異なる国では異なる単位を使用しているため、日常的に換算する必要がある最も一般的な測定値の1つが重量です。1つの国で異なる単位を使用することもあります!シンプルな重量換算アプリは非常に役立ちます。

このようなアプリケーションを開発することは、Pythonのプログラミングスキルを鍛えるための簡単な方法です。GUIを構築することを学ぶと、すぐに三目並べ、ヘビ、フラッピーバードなどのゲームを構築し始めることができます。

では、Tkinterモジュールを使用してPythonで重量換算アプリケーションを構築するにはどうすればよいでしょうか?

Tkinterモジュール

Tkinterは、デスクトップアプリケーションを作成できるTk GUIツールキットに対する標準的なPythonインターフェースです。ボタン、ラベル、テキストボックス、レイアウトマネージャーなど、さまざまなウィジェットを提供しており、大きな労力をかけずにアプリケーションを開発できます。

Tkinterを使用して構築できるアプリケーションには、GUIカレンダー、アラームクロック、電卓、メモ帳、ペイントアプリケーション、タイピングテストゲームなどがあります。Tkinterをシステムにインストールするには、ターミナルを開いて次を実行します:

pip install tkinter

Pythonを使用して重量換算アプリケーションを構築する方法

このGitHubリポジトリで、Pythonを使用して重量換算アプリケーションのソースコードを見つけることができます。

Tkinterモジュールをインポートします。Tkinterインスタンスを初期化し、ルートウィンドウを表示します。ピクセル単位で寸法とウィンドウのタイトルを設定します。

import tkinter as tk
from tkinter import *
window = Tk()
window.title("Weight Converter App")
window.geometry("750x500")

アプリケーションのヘッダーを表示するためのラベルウィジェットを定義します。配置する親ウィンドウ、表示するテキスト、フォントスタイル、フォントの色を指定します。pack()メソッドを使用して、親ウィジェットに配置する前にウィジェットをブロックに整理します。

関数convert_to_gram()を定義します。get()関数を使用して、ユーザーが提供するデータを取得します。値に1000を掛けてグラムで取得します。重量をグラムで表示するためのラベルと、計算された値を表示するためのラベルを作成します。

Label(window,text="Weight Converter App",font=("Arial", 36 ),fg='#A020F0').pack()
kg = tk.IntVar()
def convert_to_gram():
kg1 = kg.get()
gram = float(kg1) * 1000
Label(window,text="Weight in grams:",font=("Arial", 18 )).pack()
Label(window,text=gram, font=("Arial", 18 )).pack()

同様に、2つの関数convert_to_ounce()convert to pound()を定義します。上記の関数と同じ手順を実行します。キログラムをオンスに変換するには、値に35.274を掛けます。ポンドに変換するには、2.20462を掛けます。

def convert_to_ounce():
kg1 = kg.get()
ounce = float(kg1) * 35.274
Label(window,text="Weight in ounce:",font=("Arial", 18 )).pack()
Label(window,text=ounce,font=("Arial", 18 )).pack()
def convert_to_pound():
kg1 = kg.get()
pound = float(kg1) * 2.20462
Label(window,text="Weight in pound:",font=("Arial", 18 )).pack()
Label(window,text=pound, font=("Arial", 18 )).pack()

ユーザーに重量をキログラム単位で入力するよう求めるラベルを宣言します。ユーザーからの入力を取得するための入力ウィジェットを定義します。このウィジェットを配置する親ウィンドウ、変数に値を提供するtextvariable、フォントスタイルを指定します。パックマネージャーを使用してウィジェットを整理します。

重量をkgからグラム、オンス、ポンドに変換するための3つのボタンを定義します。配置するウィンドウ、表示するテキスト、背景色、フォント色、クリック時に実行する関数、フォントスタイルを指定します。ボタンが互いにくっつかないように、整理してパディングを指定します。

Label(window,text="Enter the Weight in Kgs",font=("Arial", 18 )).pack()
Entry(window,textvariable=kg, font=('arial', '13')).pack()
Button(window,text="Convert to Gram",bg="#A020F0", fg="#E0FFFF", command=convert_to_gram, font=('arial', '13')).pack(pady=10)
Button(window,text="Convert to Ounce",bg="#A020F0", fg="#E0FFFF",command=convert_to_ounce, font=('arial', '13')).pack(pady=8)
Button(window,text="Convert to Pound",bg="#A020F0", fg="#E0FFFF",command=convert_to_pound, font=('arial', '13')).pack(pady=8)

mainloop()関数は、ウィンドウを閉じるまで、PythonにTkinterイベントループを実行し、イベント(ボタンの押下など)をリッスンするように指示します。

window.mainloop()

すべてのコードをまとめると、重量換算アプリが使用できるようになります。

重量換算アプリケーションのサンプル出力

プログラムを実行すると、ヘッダー、入力ボックス、3つのボタンとそのラベルが表示されたウィンドウが表示されます。30キログラムとして値を入力し、各ボタンを連続して押すと、プログラムは変換された重量を画面に表示します。

30キログラムは30,000グラム、1,058.22オンス、66.1385ポンドに変換されます。

Tkinterを使用してデスクトップアプリケーションを構築する

Tkinterは、PythonでGUIアプリケーションを開発するための最も簡単で強力なモジュールの1つです。クロスプラットフォーム開発をサポートしており、カスタマイズ可能ですぐに使用できるウィジェットを使用して、数分で任意のアプリケーションを作成できます。

Tkinterの代替品を探している場合は、PyQtモジュールを検討することができます。PyQtはQtのPythonバインディングです。これは、多くのプラットフォームにわたるグラフィカルユーザーインターフェースの抽象化を提供するC++ライブラリと開発ツールの集まりです。ネットワーク、正規表現、SQLデータベース、XMLなどのためのツールを利用できます。