Reputation: 14980
I am new to Python and this is my very first attempt to built my very own Calculator application using wxPython.
import wx
########################################################################
class PyCalc(wx.Frame):
"""
Python Calculator using wxPython
"""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, wx.ID_ANY,
"Py Calculator",
size=(320,240)
)
panel = wx.Panel(self)
button1 = wx.Button(panel, label="1")
button1.Bind(wx.EVT_BUTTON, lambda evt, name=button1.GetLabel(): self.onButton(evt, name))
button2 = wx.Button(panel, label="2")
button2.Bind(wx.EVT_BUTTON, lambda evt, name=button2.GetLabel(): self.onButton(evt, name))
button3 = wx.Button(panel, label="3")
button3.Bind(wx.EVT_BUTTON, lambda evt, name=button3.GetLabel(): self.onButton(evt, name))
button4 = wx.Button(panel, label="4")
button4.Bind(wx.EVT_BUTTON, lambda evt, name=button4.GetLabel(): self.onButton(evt, name))
button5 = wx.Button(panel, label="5")
button5.Bind(wx.EVT_BUTTON, lambda evt, name=button5.GetLabel(): self.onButton(evt, name))
button6 = wx.Button(panel, label="6")
button6.Bind(wx.EVT_BUTTON, lambda evt, name=button6.GetLabel(): self.onButton(evt, name))
button7 = wx.Button(panel, label="7")
button7.Bind(wx.EVT_BUTTON, lambda evt, name=button7.GetLabel(): self.onButton(evt, name))
button8 = wx.Button(panel, label="8")
button8.Bind(wx.EVT_BUTTON, lambda evt, name=button8.GetLabel(): self.onButton(evt, name))
button9 = wx.Button(panel, label="9")
button9.Bind(wx.EVT_BUTTON, lambda evt, name=button9.GetLabel(): self.onButton(evt, name))
button10 = wx.Button(panel, label="10")
button10.Bind(wx.EVT_BUTTON, lambda evt, name=button10.GetLabel(): self.onButton(evt, name))
sizer = wx.GridSizer(rows = 3, cols=3, hgap =5,vgap =5)
sizer.Add(button1)
sizer.Add(button2)
sizer.Add(button3)
sizer.Add(button4)
sizer.Add(button5)
sizer.Add(button6)
sizer.Add(button7)
sizer.Add(button8)
sizer.Add(button9)
sizer.Add(button10)
panel.SetSizer(sizer)
#----------------------------------------------------------------------
def onButton(self, event, buttonLabel):
""""""
print "You pressed the %s button!" % buttonLabel
# Run the program
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = PyCalc().Show()
app.MainLoop()
My question is what should I use for that display box in the calculator which displays what the user types in? What is in in WxPython?
Upvotes: 1
Views: 591
Reputation: 369064
wx.StaticText
seems appropriate for this case.
self.display = wx.StaticText(panel, label='0')
sizer.Add(self.display)
You can change the text using SetLabel
method or Label
attribute:
self.display.SetLabel('calculated_value')
# or
self.display.Label = 'calculated_value'
Upvotes: 1