# wxcalc1 a simple gui calculator using wxpython# created with the boa constructor which generates all the gui components# all i had to do is add some code for each button click event# boa free from: http://boa-constructor.sourceforge.net/# note that boa-constructor-0.3.1.win32.exe# still uses wxpythonwin32-2.4.2.4-py23.exe# but is expected to work with wxpython version 2.5 soon# tested with python23 vegaseat 26feb2005from wxpython.wx import *# some boa generated global ids ...[wxid_wxframe1, wxid_wxframe1btn0, wxid_wxframe1btn1, wxid_wxframe1btn2, wxid_wxframe1btn3, wxid_wxframe1btn4, wxid_wxframe1btn5, wxid_wxframe1btn6, wxid_wxframe1btn7, wxid_wxframe1btn8, wxid_wxframe1btn9, wxid_wxframe1btnclear, wxid_wxframe1btndiv, wxid_wxframe1btndot, wxid_wxframe1btnequal, wxid_wxframe1btnminus, wxid_wxframe1btnmulti, wxid_wxframe1btnplus, wxid_wxframe1edit,] = map(lambda _init_ctrls: wxnewid(), range(19))class wxframe1(wxframe):#startregion, below this marker is boa generated code do not edit!!! def _init_ctrls(self, prnt): # generated method, don't edit wxframe.__init__(self, id=wxid_wxframe1, name='', parent=prnt, pos=wxpoint(306, 270), size=wxsize(266, 265), style=wxdefault_frame_style, title='calculator1') self.setclientsize(wxsize(258, 225)) self.setbackgroundcolour(wxcolour(0, 128, 0)) self.btn1 = wxbutton(id=wxid_wxframe1btn1, label='1', name='btn1', parent=self, pos=wxpoint(16, 136), size=wxsize(32, 32), style=0) evt_button(self.btn1, wxid_wxframe1btn1, self.onbtn1button) self.btn2 = wxbutton(id=wxid_wxframe1btn2, label='2', name='btn2', parent=self, pos=wxpoint(64, 136), size=wxsize(32, 32), style=0) evt_button(self.btn2, wxid_wxframe1btn2, self.onbtn2button) self.btn3 = wxbutton(id=wxid_wxframe1btn3, label='3', name='btn3', parent=self, pos=wxpoint(112, 136), size=wxsize(32, 32), style=0) evt_button(self.btn3, wxid_wxframe1btn3, self.onbtn3button) self.btn4 = wxbutton(id=wxid_wxframe1btn4, label='4', name='btn4', parent=self, pos=wxpoint(16, 96), size=wxsize(32, 32), style=0) evt_button(self.btn4, wxid_wxframe1btn4, self.onbtn4button) self.btn5 = wxbutton(id=wxid_wxframe1btn5, label='5', name='btn5', parent=self, pos=wxpoint(64, 96), size=wxsize(32, 32), style=0) evt_button(self.btn5, wxid_wxframe1btn5, self.onbtn5button) self.btn6 = wxbutton(id=wxid_wxframe1btn6, label='6', name='btn6', parent=self, pos=wxpoint(112, 96), size=wxsize(32, 32), style=0) evt_button(self.btn6, wxid_wxframe1btn6, self.onbtn6button) self.btn7 = wxbutton(id=wxid_wxframe1btn7, label='7', name='btn7', parent=self, pos=wxpoint(16, 56), size=wxsize(32, 32), style=0) evt_button(self.btn7, wxid_wxframe1btn7, self.onbtn7button) self.btn8 = wxbutton(id=wxid_wxframe1btn8, label='8', name='btn8', parent=self, pos=wxpoint(64, 56), size=wxsize(32, 32), style=0) evt_button(self.btn8, wxid_wxframe1btn8, self.onbtn8button) self.btn9 = wxbutton(id=wxid_wxframe1btn9, label='9', name='btn9', parent=self, pos=wxpoint(112, 56), size=wxsize(32, 32), style=0) evt_button(self.btn9, wxid_wxframe1btn9, self.onbtn9button) self.btn0 = wxbutton(id=wxid_wxframe1btn0, label='0', name='btn0', parent=self, pos=wxpoint(16, 176), size=wxsize(32, 32), style=0) evt_button(self.btn0, wxid_wxframe1btn0, self.onbtn0button) self.btndot = wxbutton(id=wxid_wxframe1btndot, label='.', name='btndot', parent=self, pos=wxpoint(64, 176), size=wxsize(32, 32), style=0) evt_button(self.btndot, wxid_wxframe1btndot, self.onbtndotbutton) self.btnequal = wxbutton(id=wxid_wxframe1btnequal, label='=', name='btnequal', parent=self, pos=wxpoint(112, 176), size=wxsize(32, 32), style=0) evt_button(self.btnequal, wxid_wxframe1btnequal, self.onbtnequalbutton) self.edit = wxtextctrl(id=wxid_wxframe1edit, name='edit', parent=self, pos=wxpoint(16, 16), size=wxsize(224, 24), style=0, value='') self.btnplus = wxbutton(id=wxid_wxframe1btnplus, label='+', name='btnplus', parent=self, pos=wxpoint(160, 56), size=wxsize(32, 32), style=0) evt_button(self.btnplus, wxid_wxframe1btnplus, self.onbtnplusbutton) self.btnminus = wxbutton(id=wxid_wxframe1btnminus, label='-', name='btnminus', parent=self, pos=wxpoint(160, 96), size=wxsize(32, 32), style=0) evt_button(self.btnminus, wxid_wxframe1btnminus, self.onbtnminusbutton) self.btnmulti = wxbutton(id=wxid_wxframe1btnmulti, label='*', name='btnmulti', parent=self, pos=wxpoint(160, 136), size=wxsize(32, 32), style=0) evt_button(self.btnmulti, wxid_wxframe1btnmulti, self.onbtnmultibutton) self.btndiv = wxbutton(id=wxid_wxframe1btndiv, label='/', name='btndiv', parent=self, pos=wxpoint(160, 176), size=wxsize(32, 32), style=0) evt_button(self.btndiv, wxid_wxframe1btndiv, self.onbtndivbutton) self.btnclear = wxbutton(id=wxid_wxframe1btnclear, label='c', name='btnclear', parent=self, pos=wxpoint(208, 56), size=wxsize(32, 32), style=0) self.btnclear.settooltipstring('btnclear') evt_button(self.btnclear, wxid_wxframe1btnclear, self.onbtnclearbutton) def __init__(self, parent): self._init_ctrls(parent)#endregion, above this marker is boa generated code, do not edit!!!# now respond to all the button click events ... def onbtn0button(self, event): val = '0' # get existing edit box text txt = self.edit.getvalue() # append text txt = txt + val # update edit box text self.edit.setvalue(txt) def onbtn1button(self, event): val = '1' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn2button(self, event): val = '2' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn3button(self, event): val = '3' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn4button(self, event): val = '4' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn5button(self, event): val = '5' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn6button(self, event): val = '6' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn7button(self, event): val = '7' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn8button(self, event): val = '8' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtn9button(self, event): val = '9' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtndotbutton(self, event): val = '.' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtnequalbutton(self, event): txt = self.edit.getvalue() # needs to contain a float so eg. 3/5 is 3/5.0 # otherwise division 3/5 would result in zero if '/' in txt: if '.' not in txt: txt = txt + '.0' # now evaluate the math string txt = repr(eval(txt)) # and show result in edit box self.edit.setvalue(txt) def onbtnplusbutton(self, event): val = '+' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtnminusbutton(self, event): val = '-' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtnmultibutton(self, event): val = '*' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtndivbutton(self, event): val = '/' txt = self.edit.getvalue() txt = txt + val self.edit.setvalue(txt) def onbtnclearbutton(self, event): self.edit.setvalue('')# -------------------- end of class wxframe1 ----------------------def create(parent): return wxframe1(parent)class boaapp(wxapp): def oninit(self): wxinitallimagehandlers() self.main = create(none) self.main.show() self.settopwindow(self.main) return truedef main(): application = boaapp(0) application.mainloop()if __name__ == '__main__': main()
希望本文所述对大家的python程序设计有所帮助。
