# -*- coding: utf-8 -*-
from Tkinter import *
import Tkinter as tk
##############################################################################
#フレーム
class Use_Frame(tk.Frame):
def __init__(self, master=None):
tk.Frame.__init__(self, master)
self.grid(column=0, row=0)
##############################################################################
#ボタン
class Use_Button(tk.Button):
def __init__(self, master=None):
tk.Button.__init__(self, master)
self["height"] = 3
self["width"] = 6
self["font"] = ("Helvetica", 15)
self["command"] = self.input_exe
def input_exe(self):
Label.push_list.append(self["text"])
if self["text"] == "=":
self.cal()
Label.push_list = []
elif self["text"] == "C":
Label.push_list = []
Label.Display()
else:
Label.Display()
def cal(self):
result = eval(Label.display_item)
Label.push_list.append(str(result))
Label.Display()
##############################################################################
#ラベル
class Use_Label(tk.Label):
def __init__(self, master=None):
tk.Label.__init__(self, master)
self["font"] = ("Helvetica", 20)
self["width"] = 20
self["anchor"] = "e"
self.push_list = []
def Display(self):
self.display_item = "".join(self.push_list)
self["text"] = self.display_item
##############################################################################
root = Tk()
root.title("計算機")
Main = Use_Frame(root)
Main.grid(column=0, row=1)
##############################################################################
#ボタンの作成、1から9まではfor文で、0と各種演算子は別に作成
Button_number = 9
for Button_num in range(Button_number):
Button = Use_Button(Main)
yoko = Button_num % 3
tate = Button_num // 3 + 1
Button.grid(column=yoko, row=tate)
Button["text"] = "{0}".format(Button_num + 1)
Button_0 = Use_Button(Main)
Button_0.grid(column=1, row=4)
Button_0["text"] = "0"
Button_plus = Use_Button(Main)
Button_plus.grid(column=3, row=3)
Button_plus["text"] = "+"
Button_minus = Use_Button(Main)
Button_minus.grid(column=4, row=3)
Button_minus["text"] = "-"
Button_multi = Use_Button(Main)
Button_multi.grid(column=3, row=2)
Button_multi["text"] = "*"
Button_div = Use_Button(Main)
Button_div.grid(column=4, row=2)
Button_div["text"] = "/"
Button_eqa = Use_Button(Main)
Button_eqa.grid(column=4, row=4)
Button_eqa["text"] = "="
Button_point = Use_Button(Main)
Button_point.grid(column=2, row=4)
Button_point["text"] = "."
Button_clear = Use_Button(Main)
Button_clear.grid(column=4, row=1)
Button_clear["text"] = "C"
Sub = Use_Frame(root)
Sub.grid(column=0, row=0)
Label = Use_Label(Sub)
Label.grid(column=0,row=0)
root.mainloop()