1. HOME
  2. ブログ
  3. エンジニアになろう!
  4. 【Python】Tkinterで簡易的な電卓作ってみた!
【Python】Tkinterで簡易的な電卓作ってみた!

【Python】Tkinterで簡易的な電卓作ってみた!

Python で簡易的な電卓作りに挑戦!

誰もが使ったことがあるであろう「電卓」。

実は、Python で簡単に作れるんです。

Python で GUI を作成する場合、「規則的なボタンの配列」や「内部的な処理が簡単」な電卓は、とても学習しやすいテーマ!

ぜひ、GUI ライブラリ学習の一歩として、一緒に電卓を作ってみましょう!

Tkinter とは?

Tkinter」は、Python のモジュールの一つです。

デスクトップ向けアプリを作成する際に使われるもので、ボタンやエディタなどの部品「Widgit」を使って、GUI アプリを実装することができます。

ちなみに、Python でデスクトップアプリを作成する場合、他にも以下のようなライブラリがあります。

  1. Kivy
  2. wxPython
  3. PyQt

今回は、主要かつ手軽に扱えることから、「Tkinter」での実装を行います。

Tkinter を扱うことのメリット

Tkinter の最大の特徴は、主要な OS に対応していることです。

そのため、ユーザーの OS を気にしなくて済む、クロスプラットフォームな GUI ライブラリなのです。

さらに、OS が Linux なら、ほとんどの場合 Python が標準搭載されているため、ソースコードを渡すだけで使えます。

Tkinter の導入方法

それでは、さっそく Tkinter を導入しましょう!

Python のインストール

Python のインストールは公式サイトから簡単にインストールできますよ。

【Python 公式サイト】
https://www.python.org/downloads/

インストールが済んだら、コマンドで一度、確認してみましょう。

ライブラリのインストール

そうしたら、標準搭載の Tkinter を確認してみましょう!

正しくインストールされていれば、ポップアップが表示されます。

【実装例】 Tkinter で簡易的な電卓を!

さて、次は、実際に Tkinter を使って簡易的な電卓を作っていきましょう!

基本的な「Tkinter」の Window を作成

まず、基本的な空の Window だけ作ってみましょう。

以下の画像が、空の Window の実装例です。

基本的な「Tkinter」の Window を作成

以下が、今回の実装例のコードです。

このコードは、以下の処理を行っています。

ライブラリのインポート

Python3.x では「tkinter」と全て小文字で書きます。

ウィンドウを作成し、タイトルやサイズを設定

メインループの実行

拡張子「.py」で実行されているか判断

このコードを基本として、部品を組み合わせていくことで、デスクトップアプリケーションを作成していくことができます!

簡易的な電卓の作成

GUI を作成するにあたって、重要なポイントは「デザイン」です。

今回は、以下のようなデザインで作成していきます。

簡易的な電卓の作成

以下が、今回の実装例のコードです。

このコードは、以下の処理を行っています。

ライブラリのインポート

ボタンの配置や記号を定義

画面上に部品を設置する Frame を作成

ttk モジュールを用いて、Frame のサイズや余白を設定します。

作成した Frame に部品を配置

Tkinter のモジュール「StringVar」を使い、計算式や計算結果を動的に挿入するための変数を作成します。

さらに、Label や Buttonの配置を行います。

Tkinter のイベント処理「bind」を使い、クリックされた時の処理も定義しましょう。

button がクリックされた時の処理を定義

まず、どの button が押されたことをチェックします。

押された button が記号であるかなどの条件によって、それぞれに適した処理を設定します。

関数 'eval'

今回、計算で使っている関数が 'eval' とよばれる関数です。

普段使っている、print 関数を使って以下のように書いてみましょう。

クォーテーションの中に書かれた文字列をそのまま出力したはずです。

しかし、'eval' 関数を使って以下のように書いてみましょう。

クォーテーションの中の文字列を計算式として、認識し、計算結果を出力します。

さいごに

「GUI 作成なら、Python よりもっと使いやすい言語があるじゃん…」と思う人も多いでしょう。

しかし、Python の特徴である「記述のしやすさ」「充実したライブラリ」は、様々な機能の拡張がしやすいといったメリットもあるんです。

Python や GUI 開発に興味がある人は、ぜひ一度試してみてくださいね!

こちらの記事もオススメ!


書いた人はこんな人

広告メディア事業部
広告メディア事業部
「好きを仕事にするエンジニア集団」の(株)ライトコードです!

ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もり大歓迎!

また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。

以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア