Advertisement
Guest User

Untitled

a guest
Jun 9th, 2011
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.96 KB | None | 0 0
  1. # -*- coding: cp1252 -*-
  2. '''
  3. Created on 08/giu/2011
  4.  
  5. @author: Mirò
  6. '''
  7.  
  8. from Tkinter import *
  9.  
  10. def frame(root, side):
  11.     w = Frame(root)
  12.     w.pack(side = side, expand = YES, fill = BOTH)
  13.     return w
  14.  
  15. def button(root, side, text, command = None):
  16.     w = Button(root, text = text, command = command)
  17.     w.pack(side = side, expand = YES, fill = BOTH)
  18.     return w
  19.  
  20. class Calcolatrice(Frame):
  21.     '''
  22.    calcolatrice
  23.    '''
  24.     calculated = False
  25.    
  26.     def __init__(self):
  27.         Frame.__init__(self)
  28.         self.option_add("*Font", "Verdana 12 bold")
  29.         self.pack(expand = YES, fill = BOTH)
  30.         self.master.title("Cacolatrice")
  31.         self.master.iconname("Calc1")
  32.        
  33.         display = StringVar()
  34.         Entry(self, relief = SUNKEN, textvariable = display).pack(side = TOP, expand = YES, fill = BOTH)
  35.        
  36.         for key in ("123","456","789","-0."):
  37.             keyF = frame(self, TOP)
  38.             for char in key:
  39.                 button(keyF, LEFT, char, lambda w = display, c = char: w.set(w.get() + c))
  40.                
  41.         opsF = frame(self, TOP)
  42.         for char in "+-*/=":
  43.             if char == "=":
  44.                 btn = button(opsF, LEFT, char)
  45.                 btn.bind("<ButtonRelease-1>", lambda e, s = self, w = display: s.calc(w), "+")
  46.             else:
  47.                 btn = button(opsF, LEFT, char, lambda w=display, s=' %s '%char: w.set(w.get()+s))
  48.                
  49.         clearF = frame(self, BOTTOM)
  50.         button(clearF, LEFT, "Clr", lambda w=display: w.set(''))
  51.    
  52.     def writeCalculation(self, w, s):
  53.         print(s)
  54.        
  55.         if self.calculated:
  56.             w.set(s)
  57.         else:
  58.             w.set(w.get() + s)
  59.    
  60.     def reset(self, w):
  61.         print("entro")
  62.         w.set("")
  63.    
  64.     def calc(self, display):
  65.         try:
  66.             display.set(eval(display.get()))
  67.             self.calculated = True
  68.         except:
  69.             display.set("ERROR")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement