PythonでwindowsGUIをあつかう勉強用に電卓もどきを作ってみました。
+ ― のキーしかありませんがコピペと多少の編集で × / や他の演算も作ることが出来ます。
Excelでやった方が数倍楽ですが python + windowsGUI の値入力と入力値の取得、関数など基本的なことが入っています。
以下のコードをコピペして適当な名前を付け、拡張子を.py または.pyw にすればダブルクリックで動きます。(pythonのインストールは必要です)
# 電卓みたいなもの
# windowsGUIモジュールインポート
import tkinter as tk
# クリアボタンを押したときの処理 --- (*1)
def clear(): # 関数
labelAns2['text'] = ""
# マウスをクリックしたときの処理 --- (*2)
def delA(event): # クリックイベント関数
textA.delete(0,tk.END) # 入力値をデリート
def delB(event):
textB.delete(0,tk.END)
# ---------------------------------------------------ここまで
# 演算+ボタンを押したときの処理 --- (*3)
def calc_tasizan(): # 足し算関数
# 入力値取得
A = float(textA.get()) # 値1 取得
B = float(textB.get()) # 値2 取得
# 演算+
C=A+B # A + B
# 結果をラベルに表示
C = "値1 + 値2 = {:,.15g} ".format(C) # {:,.12g} 書式 ,桁区切り .12 有効桁数(fの場合少数以下桁数) g 汎用フォーマット
labelAns2['text'] = C
# 演算 - ボタンを押したときの処理 --- (*3)
def calc_hikizan(): # 引き算関数
# 入力値取得
A = float(textA.get()) # 値1 取得
B = float(textB.get()) # 値2 取得
# 演算+
C=A-B # A - B
# 結果をラベルに表示
C = "値1 - 値2 = {:,.12g} ".format(C)
labelAns2['text'] = C
# ウィンドウを作成 --- (*5)
win = tk.Tk()
win.title("電卓のようなもの") # タイトル
win.minsize(400, 300)
# タイトル表示
canvas = tk.Canvas(win, height=400, width=300)# キャンバスサイズ
canvas.place(x=0, y=0)# 配置場所
canvas.create_text(180,50,text='なんちゃって電卓',font=('Times',15))
# 部品を作成 --- (*6)
labelmidashi = tk.Label(win, text=u'入 力 値') # 見出し
labelmidashi.place(x=100, y=100)
labelA = tk.Label(win, text=u'値1 :')
labelA.place(x=50, y=125)
textA = tk.Entry(win,width=20)
textA.insert(tk.END, '1.12345')
textA.place(x=120, y=125)
textA.bind('<Button>', delA) # クリックイベント
labelB = tk.Label(win, text=u'値2 :')
labelB.place(x=50, y=150)
textB = tk.Entry(win,width=20)
textB.insert(tk.END, '1.12345')
textB.place(x=120, y=150)
textB.bind('<Button>', delB) # クリックイベント
labelAns1 = tk.Label(win, anchor="w",width=20,text=u'答え') # 見出し
labelAns1.place(x=50, y=175)
labelAns2 = tk.Label(win, anchor="w",width=20) # 答え表示
labelAns2.place(x=80, y=175)
# クリアボタン ------------------------------------- (*7)
clearButton = tk.Button(win, text=u'クリア')
clearButton["command"] = clear
clearButton.place(x=120, y=200)
# 演算 + ボタン --------------------------------------- (*7)
calcButton = tk.Button(win, text=u'+')
calcButton["command"] = calc_tasizan
calcButton.place(x=170, y=200)
# 演算 - ボタン --------------------------------------- (*7)
calcButton = tk.Button(win, text=u'-')
calcButton["command"] = calc_hikizan
calcButton.place(x=200, y=200)
# ウィンドウを動かす
win.mainloop()