Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. from tkinter import *
  2. def frame(root, side):
  3. w = Frame(root)
  4. w.pack(side=side, expand=YES, fill=BOTH)
  5. return w
  6. def button(root, side, text, command=None):
  7. w = Button(root, text=text, command=command)
  8. w.pack(side=side, expand=YES, fill=BOTH)
  9. return w
  10. class Calculator(Frame):
  11. def __init__(self):
  12. Frame.__init__(self)
  13. self.pack(expand=YES, fill=BOTH)
  14. self.master.title('Simple Calculator')
  15. self.master.iconname("calc1")
  16. display = StringVar()
  17. Entry(self, relief=SUNKEN,textvariable=display).pack(side=TOP,expand=YES, fill=BOTH)
  18.  
  19. for key in ("123", "456", "789", "-0."):
  20. keyF = frame(self, TOP)
  21. for char in key:
  22. button(keyF, LEFT, char,
  23. lambda w=display, s='%s'%char: w.set(w.get()+s))
  24. opsF = frame(self, TOP)
  25. for char in "+-*/=":
  26. if char == '=':
  27. btn = button(opsF, LEFT, char)
  28. btn.bind('<ButtonRelease-1>',
  29. lambda e, s=self, w=display: s.calc(w), '+')
  30. else:
  31. btn = button(opsF, LEFT, char,
  32. lambda w=display, c=char: w.set(w.get()+' '+c+' '))
  33. clearF = frame(self, BOTTOM)
  34. button(clearF, LEFT, 'Clr', lambda w=display: w.set(''))
  35. def calc(self, display):
  36. try:
  37. display.set(eval(display.get()))
  38. except ValueError:
  39. display.set("ERROR")
  40. if __name__ == '__main__':
  41. Calculator().mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement