Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: cp1252 -*-
- '''
- Created on 08/giu/2011
- @author: Mirò
- '''
- from Tkinter import *
- def frame(root, side):
- w = Frame(root)
- w.pack(side = side, expand = YES, fill = BOTH)
- return w
- def button(root, side, text, command = None):
- w = Button(root, text = text, command = command)
- w.pack(side = side, expand = YES, fill = BOTH)
- return w
- class Calcolatrice(Frame):
- '''
- calcolatrice
- '''
- calculated = False
- def __init__(self):
- Frame.__init__(self)
- self.option_add("*Font", "Verdana 12 bold")
- self.pack(expand = YES, fill = BOTH)
- self.master.title("Cacolatrice")
- self.master.iconname("Calc1")
- display = StringVar()
- Entry(self, relief = SUNKEN, textvariable = display).pack(side = TOP, expand = YES, fill = BOTH)
- for key in ("123","456","789","-0."):
- keyF = frame(self, TOP)
- for char in key:
- button(keyF, LEFT, char, lambda w = display, c = char: w.set(w.get() + c))
- opsF = frame(self, TOP)
- for char in "+-*/=":
- if char == "=":
- btn = button(opsF, LEFT, char)
- btn.bind("<ButtonRelease-1>", lambda e, s = self, w = display: s.calc(w), "+")
- else:
- btn = button(opsF, LEFT, char, lambda w=display, s=' %s '%char: w.set(w.get()+s))
- clearF = frame(self, BOTTOM)
- button(clearF, LEFT, "Clr", lambda w=display: w.set(''))
- def writeCalculation(self, w, s):
- print(s)
- if self.calculated:
- w.set(s)
- else:
- w.set(w.get() + s)
- def reset(self, w):
- print("entro")
- w.set("")
- def calc(self, display):
- try:
- display.set(eval(display.get()))
- self.calculated = True
- except:
- display.set("ERROR")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement