Python を使って GUI 電卓を作成する

PythonBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、Python と tkinter ライブラリを使って基本的な GUI 電卓を作成する方法を案内します。この電卓は、足し算、引き算、掛け算、割り算などの単純な算術演算を行うことができます。

👀 プレビュー

GUI 電卓のインターフェイスのプレビュー

🎯 タスク

このプロジェクトでは、以下のことを学びます。

  • 電卓用のメイン tkinter ウィンドウを設定する方法
  • 算術演算を行うための計算関数を追加する方法
  • ユーザーが数字を入力して結果を表示するためのエントリーフィールドを作成する方法
  • 数字、算術演算、クリア機能用のボタンを追加する方法
  • tkinter イベントループを実行して電卓を起動する方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • tkinter ライブラリを使ってグラフィカルユーザーインターフェイスを作成する
  • ボタンに関数をバインドしてインタラクティビティを有効にする
  • Python で基本的な算術演算を行う
  • エントリーフィールドを使って結果を表示して更新する

プロジェクトファイルを作成する

まず、labex_calculator.py という名前の新しい Python ファイルを作成します。このファイルには、電卓のコードを保存します。ファイルを作成するには、オペレーティングシステムのターミナルまたは GUI インターフェイスを使用できます。

## 新しいPythonファイルを作成する
cd ~/project
touch labex_calculator.py

メインの Tkinter ウィンドウをセットアップする

電卓を構築し始めるには、エディタで labex_calculator.py ファイルを開きます。電卓の GUI(グラフィカルユーザーインターフェイス)を作成する最初のステップは、メインウィンドウを作成することです。これは tkinter ライブラリを使って行います。

## tkinter ライブラリをインポートする
import tkinter as tk

## メインの tkinter ウィンドウ/トップレベルを作成する
root = tk.Tk()
root.title('LabEx Calculator') ## 電卓のタイトルを設定する
root.geometry('400x600') ## 電卓のサイズを設定する
root.configure(background='light blue') ## 電卓の背景色を設定する

計算関数を追加する

電卓に算術演算を行わせるには、calculate という関数を定義します。

def calculate(event):
    text = event.widget.cget('text') ## ボタンからのテキストを取得する
    if text == '=':
        try:
            result = str(eval(entry.get())) ## 結果を計算する
            entry.set(result) ## エントリーを結果に設定する
        except Exception as e:
            entry.set('Error') ## エラーの場合、エントリーを'Error'に設定する
        return

    if text == 'C':
        entry.set('') ## 'C'が押された場合、エントリーをクリアする
        return
    entry.set(entry.get() + text) ## 押されたボタンのテキストをエントリーに追加する

入力フィールドを作成する

ユーザーが数字を入力し、計算結果を表示するためのエントリーフィールドを作成します。

entry = tk.StringVar()
entry.set('') ## 初期エントリーを空文字列に設定する
entry1 = tk.Entry(root, textvar=entry, font='lucida 30 bold', bd=5, insertwidth=4, bg='powder blue', justify='right') ## エントリーフィールドを作成する
entry1.pack(fill=tk.X, ipadx=8, pady=10, padx=10) ## エントリーフィールドの配置を設定する

ボタンを追加する

次に、電卓に数字、算術演算、クリア機能のボタンを追加します。

button_frame = tk.Frame(root) ## ボタン用のフレームを作成する
button_frame.pack() ## フレームを tkinter ウィンドウに追加する

## ボタンのテキストのリスト
button_list = [
    '7', '8', '9', '/',
    '4', '5', '6', '*',
    '1', '2', '3', '-',
    '.', '0', '=', '+',
    '00', '000', 'C'
]

## ボタンを作成して配置する
i = 0
for btn_text in button_list:
    button = tk.Button(button_frame, text=btn_text, font='lucida 20 bold', bg='skyblue', padx=15, width=5)
    button.grid(row=int(i/4), column=i%4, padx=3, pady=3)
    i += 1
    button.bind('<Button-1>', calculate) ## 'calculate'関数をボタンにバインドする

プロジェクトを実行する

最後に、tkinter のイベントループを実行して電卓を起動しましょう。

root.mainloop()

デスクトップに切り替えてプロジェクトを実行します。

python labex_calculator.py

Calculator application interface

まとめ

おめでとうございます!これで Python と tkinter ライブラリを使って基本的な GUI 電卓を作成することができました。labex_calculator.py スクリプトを実行することで電卓を起動することができます。このプロジェクトでは、tkinter ウィンドウの作成、計算関数の追加、電卓用のエントリーフィールドの作成、算術演算を行うボタンの追加、そして電卓の実行について学びました。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習