Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.08 KB | None | 0 0
  1. from tkinter import *
  2.  
  3.  
  4.  
  5. class Calculator:
  6.  
  7.     def __init__(self, master):
  8.         self.write_area = Entry(master, justify=RIGHT)
  9.         self.write_area.grid(row=0, columnspan=6, sticky=W + E, ipady=6, pady=6)
  10.  
  11.         self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area.yview).grid(
  12.             rowspan=5, column=8, sticky=N+S)
  13.  
  14.  
  15.         self.score_area = Text(master, width=40, height=10)
  16.  
  17.         self.score_area.grid(rowspan=5, column=7, padx=4)
  18.         self.score_area['yscrollcommand'] = self.scrollbarY.set
  19.         self.score_area_text = Label(text="Your score is:").grid(row=0, column=7)
  20.  
  21.         self.button7 = Button(text="7", height=2, width=8, command=lambda: self.write_area.insert(END, "7")).grid(
  22.             column=0, row=1)
  23.         self.button8 = Button(text="8", height=2, width=8, command=lambda: self.write_area.insert(END, "8")).grid(
  24.             row=1, column=1)
  25.         self.button9 = Button(text="9", height=2, width=8, command=lambda: self.write_area.insert(END, "9")).grid(
  26.             row=1, column=2)
  27.         self.buttonPlus = Button(text="+", height=2, width=8, command=self.plus).grid(row=1, column=3)
  28.         self.buttonSquare = Button(text="x²", height=2, width=8).grid(row=1, column=4)
  29.         self.buttonC = Button(text="C", height=2, width=8, command=self.clear).grid(row=2, column=5)
  30.  
  31.         self.button4 = Button(text="4", height=2, width=8, command=lambda: self.write_area.insert(END, "4")).grid(
  32.             row=2, column=0)
  33.         self.button5 = Button(text="5", height=2, width=8, command=lambda: self.write_area.insert(END, "5")).grid(
  34.             row=2, column=1)
  35.         self.button6 = Button(text="6", height=2, width=8, command=lambda: self.write_area.insert(END, "6")).grid(
  36.             row=2, column=2)
  37.         self.buttonMinus = Button(text="-", height=2, width=8, command=lambda: self.write_area.insert(END, "-")).grid(
  38.             row=2, column=3)
  39.         self.buttonSquareY = Button(text="xʸ", height=2, width=8).grid(row=2, column=4)
  40.         self.buttonBackspace = Button(text="←", height=2, width=8).grid(row=1, column=5)
  41.  
  42.         self.button1 = Button(text="1", height=2, width=8, command=lambda: self.write_area.insert(END, "1")).grid(
  43.             row=3, column=0)
  44.         self.button2 = Button(text="2", height=2, width=8, command=lambda: self.write_area.insert(END, "2")).grid(
  45.             row=3, column=1)
  46.         self.button3 = Button(text="3", height=2, width=8, command=lambda: self.write_area.insert(END, "3")).grid(
  47.             row=3, column=2)
  48.         self.buttonMulti = Button(text="*", height=2, width=8, command=lambda: self.write_area.insert(END, "*")).grid(
  49.             row=3, column=3)
  50.         self.buttonRoot = Button(text="√", height=2, width=8).grid(row=3, column=4)
  51.         self.buttonPlusMinus = Button(text="+/-", height=2, width=8).grid(row=3, column=5)
  52.  
  53.         self.button0 = Button(text="0", height=2, width=8, command=lambda: self.write_area.insert(END, "0")).grid(
  54.             row=5, column=1)
  55.         self.buttonDot = Button(text=".", height=2, width=8, command=lambda: self.write_area.insert(END, ".")).grid(
  56.             row=5, column=0)
  57.         self.buttonEqual = Button(text="=", height=2, width=8, command=self.equal).grid(row=5, column=2)
  58.         self.buttonDiv = Button(text="/", height=2, width=8).grid(row=5, column=3)
  59.         self.buttonLeftPar = Button(text="(", height=2, width=8, command=lambda: self.write_area.insert(END, "(")).grid(
  60.             row=5, column=4)
  61.         self.buttonRightPar = Button(text=")", height=2, width=8, command=lambda: self.write_area.insert(END, ")")).\
  62.             grid(row=5, column=5)
  63.  
  64.  
  65.     def equal(self):
  66.         equation = self.write_area.get()
  67.         self.score_area.insert(1.0, self.write_area.get() + "=" + str(eval(compile(equation, '<string>', 'eval'))) + "\n")
  68.         self.write_area.delete(0, END)
  69.  
  70.  
  71.     def clear(self):
  72.         self.write_area.delete(0, END)
  73.         self.score_area.delete(1.0, END)
  74.  
  75.     def plus(self):
  76.             self.write_area.insert(END, "+")
  77.  
  78. root = Tk()
  79.  
  80. a = Calculator(root)
  81.  
  82. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement