Pycoders has a new tutorial for wxPython.
Calculators are rather common as GUI “Hello World” programs: Tutorial Project: Calculator — wxGlade 1.0.0 documentation
Yeah…they are. But it’s a good beginner tutorial for someone new to wxPython
I have several others in my book, which is where this originally came from
A long time ago, I made a twenty-line wx code for a calculator and posted it to I made a Calculator with 20 lines of code using wx.
Now, I improved my original code to 19 lines (I learned how to use AddMany
)
import wx
def pack(items, orient=wx.HORIZONTAL):
sizer = wx.BoxSizer(orient)
sizer.AddMany((i, 1, wx.EXPAND|wx.ALL, 0) for i in items)
return sizer
def bt_press(key):
if key == 'C': disp.Value = ''
elif key == '<': disp.Value = disp.Value[:-1]
elif key == '=': disp.Value = str(round(eval(disp.Value),16))
else : disp.Value += key
app = wx.App()
self = wx.Frame(None, title="wxcalc")
keys = '()C<789/456*123-.0=+'
btns = [[wx.Button(self, label=c) for c in keys[i:i+4]] for i in range(0,20,4)]
disp = wx.TextCtrl(self)
self.Bind(wx.EVT_BUTTON, lambda v: bt_press(v.EventObject.Label))
self.SetSizer(pack([disp] + [pack(x) for x in btns], orient=wx.VERTICAL))
self.Show()
app.MainLoop()
Resources:
https://www.reddit.com/r/Python/comments/ofr75b/i_made_a_calculator_with_17_lines_of_code/
https://www.reddit.com/r/Python/comments/ojab0n/i_see_your_17_loc_calculator_and_i_raise_you_a/
https://wiki.wxpython.org/CalculatorDemo#CA-723367dc8badf8145df1dd6f0fa2cafd16eb0336_1