Question: Python calculator project: I need my interface to look like this..... I figured out how to get my buttons in the grid but when I
Python calculator project: I need my interface to look like this.....

I figured out how to get my buttons in the grid but when I try to make the AC button longer by setting the width value to 14 it messes everything up and offsets the grid and my = button is not showing.
_________________________________________________-
from tkinter import * class Calculator: def __init__(self, master): self.master = master master.title("Calculator") self.screen = Text(master, state='disabled', width=30, height=3,background="white", foreground="blue") self.screen.grid(row=0,column=0,columnspan=4,padx=5,pady=5) self.screen.configure(state='normal') self.equation = '' b1 = self.createButton('AC',None, 14) b2 = self.createButton('%') b3 = self.createButton('/') b4 = self.createButton(7) b5 = self.createButton(8) b6 = self.createButton(9) b7 = self.createButton('*') b8 = self.createButton(4) b9 = self.createButton(5) b10 = self.createButton(6) b11 = self.createButton('-') b12 = self.createButton(1) b13 = self.createButton(2) b14 = self.createButton(3) b15 = self.createButton('+') b16 = self.createButton(0, True) b17 = self.createButton('.') b18 = self.createButton('=',None) buttons = [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17, b18] count = 0 for row in range(1,5): for column in range(4): buttons[count].grid(row=row,column=column) count += 1 buttons[16].grid(row=5,column=0,columnspan=4) def createButton(self,val,write=True,width=7): return Button(self.master, text=val,command = lambda: self.click(val,write), width=width) def click(self,text,write): if write == None: if text == '=' and self.equation: self.equation= re.sub(u"\u00F7", '/', self.equation) print(self.equation) answer = str(eval(self.equation)) self.clear_screen() self.insert_screen(answer,newline=True) elif text == u"\u232B": self.clear_screen() else: self.insert_screen(text) def clear_screen(self): self.equation = '' self.screen.configure(state='normal') self.screen.delete('1.0', END) def insert_screen(self, value,newline=False): self.screen.configure(state='normal') self.screen.insert(END,value) self.equation += str(value) self.screen.configure(state ='disabled') root = Tk() my_gui = Calculator(root) root.mainloop()
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
