Question: Add this bonus to the following code: Bonus 5 0 points: Add a 'Mode' menu item. The allows the user to switch between standard entry
Add this bonus to the following code: Bonus points: Add a 'Mode' menu item. The allows the user to switch between standard entry
mode and RPN mode. When in RPN mode the last four items on the stack should be shown in the
display. Add a key for xy
#
# MODULE IMPORTS
#
import tkinter as tk
from tkinter import messagebox
import math
#
# MAIN ROUTINE
#
class CalculatortkTk:
def initself:
superinit
self.titleCalculator
self.geometryx
self.resultvar tkStringVar
self.createwidgets
def createwidgetsself:
# Display
entry tkEntryself textvariableself.resultvar, fontArial bd insertwidth width borderwidth
entry.gridrow column columnspan
# Buttons
buttons
x
CE
for text row, col in buttons:
button tkButtonself texttext, padx pady fontArial commandlambda ttext: self.onbuttonclickt
button.gridrowrow, columncol, sticky"nsew"
# Menu
menu tkMenuself
self.configmenumenu
filemenu tkMenumenu tearoff
filemenu.addcommandlabel"Exit", commandself.quit
menu.addcascadelabel"File", menufilemenu
helpmenu tkMenumenu tearoff
helpmenu.addcommandlabel"About", commandself.showabout
menu.addcascadelabel"Help", menuhelpmenu
def onbuttonclickself button:
if button :
try:
result evalselfresultvar.get
self.resultvar.setresult
except Exception as e:
self.resultvar.setError
elif button CE:
self.resultvar.set
elif button :
try:
value floatselfresultvar.get
self.resultvar.setvalue
except ValueError:
self.resultvar.setError
elif button :
try:
value floatselfresultvar.get
self.resultvar.setmathsqrtvalue
except ValueError:
self.resultvar.setError
elif button x:
try:
value floatselfresultvar.get
self.resultvar.set value
except ValueError ZeroDivisionError:
self.resultvar.setError
elif button :
try:
value floatselfresultvar.get
self.resultvar.setvalue
except ValueError:
self.resultvar.setError
else:
self.resultvar.setselfresultvar.get button
def showaboutself:
messagebox.showinfoAbout "Author: Cope Hawkins
Date: December
if namemain:
app Calculator
app.mainloop
#
# FUNCTIONS & DEFINITIONS
#
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
