-use justify=right for input field so it displays on rightnot left-add ' +and ' -buttons (and 'ekeypressfor float exponents'ekeypress must generally be followed digitsnot or optr key-remove 'lbutton (but still allow 'lkeypress)superfluous nowbecause python auto converts up if too big ('lforced this in past)-use smaller font size overall-auto scroll to the end in the history window to doadd commas-insertion mode (see str format and lp example)allow '**as an operator keyallow '+and 'jinputs for complex numbersuse new decimal type for fixed precision floatsas iscan use 'cmdpopup windows to input and evaluate things like complexbut can' be input via main windowcaveatpycalc' precisionaccuracyand some of its behaviouris currently bound by result of str(call###############################################################################""from tkinter import from pp gui tools guimixin import guimixin from pp gui tools widgets import labelentrybuttonframe fgbgfont 'black''skyblue'('courier' 'bold'widgetsconsts quit method widget builders default config debugme true def trace(*args)if debugmeprint(args###############################################################################the main class handles user interfacean extended frameon new toplevelor embedded in another container widget ###############################################################################class calcgui(guimixinframe)operators "+-*/=operands ["abcd"" "" "" ()"button lists customizable def __init__(selfparent=nonefg=fgbg=bgfont=font)frame __init__(selfparentself pack(expand=yesfill=bothall parts expandable self eval evaluator(embed stack handler self text stringvar(make linked variable self text set(" "self erase clear " text next self makewidgets(fgbgfontbuild the gui itself if not parent or not isinstance(parentframe)self master title('pycalc 'title iff owns window self master iconname("pycalc"ditto for key bindings self master bind(''self onkeyboardself entry config(state='readonly' not 'disabled'=grey elseself entry config(state='normal'self entry focus(def makewidgets(selffgbgfont) text and language frames plus text-entry