Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- class Calculator:
- def __init__(self, master):
- self.write_area = Entry(master, justify=RIGHT)
- self.write_area.grid(row=0, columnspan=6, sticky=W + E, ipady=6, pady=6)
- self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area.yview).grid(
- rowspan=5, column=8, sticky=N+S)
- self.score_area = Text(master, width=40, height=10)
- self.score_area.grid(rowspan=5, column=7, padx=4)
- self.score_area['yscrollcommand'] = self.scrollbarY.set
- self.score_area_text = Label(text="Your score is:").grid(row=0, column=7)
- self.button7 = Button(text="7", height=2, width=8, command=lambda: self.write_area.insert(END, "7")).grid(
- column=0, row=1)
- self.button8 = Button(text="8", height=2, width=8, command=lambda: self.write_area.insert(END, "8")).grid(
- row=1, column=1)
- self.button9 = Button(text="9", height=2, width=8, command=lambda: self.write_area.insert(END, "9")).grid(
- row=1, column=2)
- self.buttonPlus = Button(text="+", height=2, width=8, command=self.plus).grid(row=1, column=3)
- self.buttonSquare = Button(text="x²", height=2, width=8).grid(row=1, column=4)
- self.buttonC = Button(text="C", height=2, width=8, command=self.clear).grid(row=2, column=5)
- self.button4 = Button(text="4", height=2, width=8, command=lambda: self.write_area.insert(END, "4")).grid(
- row=2, column=0)
- self.button5 = Button(text="5", height=2, width=8, command=lambda: self.write_area.insert(END, "5")).grid(
- row=2, column=1)
- self.button6 = Button(text="6", height=2, width=8, command=lambda: self.write_area.insert(END, "6")).grid(
- row=2, column=2)
- self.buttonMinus = Button(text="-", height=2, width=8, command=lambda: self.write_area.insert(END, "-")).grid(
- row=2, column=3)
- self.buttonSquareY = Button(text="xʸ", height=2, width=8).grid(row=2, column=4)
- self.buttonBackspace = Button(text="←", height=2, width=8).grid(row=1, column=5)
- self.button1 = Button(text="1", height=2, width=8, command=lambda: self.write_area.insert(END, "1")).grid(
- row=3, column=0)
- self.button2 = Button(text="2", height=2, width=8, command=lambda: self.write_area.insert(END, "2")).grid(
- row=3, column=1)
- self.button3 = Button(text="3", height=2, width=8, command=lambda: self.write_area.insert(END, "3")).grid(
- row=3, column=2)
- self.buttonMulti = Button(text="*", height=2, width=8, command=lambda: self.write_area.insert(END, "*")).grid(
- row=3, column=3)
- self.buttonRoot = Button(text="√", height=2, width=8).grid(row=3, column=4)
- self.buttonPlusMinus = Button(text="+/-", height=2, width=8).grid(row=3, column=5)
- self.button0 = Button(text="0", height=2, width=8, command=lambda: self.write_area.insert(END, "0")).grid(
- row=5, column=1)
- self.buttonDot = Button(text=".", height=2, width=8, command=lambda: self.write_area.insert(END, ".")).grid(
- row=5, column=0)
- self.buttonEqual = Button(text="=", height=2, width=8, command=self.equal).grid(row=5, column=2)
- self.buttonDiv = Button(text="/", height=2, width=8).grid(row=5, column=3)
- self.buttonLeftPar = Button(text="(", height=2, width=8, command=lambda: self.write_area.insert(END, "(")).grid(
- row=5, column=4)
- self.buttonRightPar = Button(text=")", height=2, width=8, command=lambda: self.write_area.insert(END, ")")).\
- grid(row=5, column=5)
- def equal(self):
- equation = self.write_area.get()
- self.score_area.insert(1.0, self.write_area.get() + "=" + str(eval(compile(equation, '<string>', 'eval'))) + "\n")
- self.write_area.delete(0, END)
- def clear(self):
- self.write_area.delete(0, END)
- self.score_area.delete(1.0, END)
- def plus(self):
- self.write_area.insert(END, "+")
- root = Tk()
- a = Calculator(root)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement