[Python] wxpython开发的简单的gui计算器 →→→→→进入此内容的聊天室

来自 , 2021-01-06, 写在 Python, 查看 162 次.
URL http://www.code666.cn/view/c7d0e7e2
  1. # wxCalc1 a simple GUI calculator using wxPython
  2. # created with the Boa Constructor which generates all the GUI components
  3. # all I had to do is add some code for each button click event
  4. # Boa free from: http://boa-constructor.sourceforge.net/
  5. # note that    boa-constructor-0.3.1.win32.exe
  6. # still uses   wxPythonWIN32-2.4.2.4-Py23.exe
  7. # but is expected to work with wxPython version 2.5 soon
  8. # tested with Python23   vegaseat    26feb2005
  9. from wxPython.wx import *
  10. # some Boa generated global IDs ...
  11. [wxID_WXFRAME1, wxID_WXFRAME1BTN0, wxID_WXFRAME1BTN1, wxID_WXFRAME1BTN2,
  12.   wxID_WXFRAME1BTN3, wxID_WXFRAME1BTN4, wxID_WXFRAME1BTN5, wxID_WXFRAME1BTN6,
  13.   wxID_WXFRAME1BTN7, wxID_WXFRAME1BTN8, wxID_WXFRAME1BTN9,
  14.   wxID_WXFRAME1BTNCLEAR, wxID_WXFRAME1BTNDIV, wxID_WXFRAME1BTNDOT,
  15.   wxID_WXFRAME1BTNEQUAL, wxID_WXFRAME1BTNMINUS, wxID_WXFRAME1BTNMULTI,
  16.   wxID_WXFRAME1BTNPLUS, wxID_WXFRAME1EDIT,
  17. ] = map(lambda _init_ctrls: wxNewId(), range(19))
  18. class wxFrame1(wxFrame):
  19. #startregion, below this marker is Boa generated code do not edit!!!
  20.     def _init_ctrls(self, prnt):
  21.         # generated method, don't edit
  22.         wxFrame.__init__(self, id=wxID_WXFRAME1, name='', parent=prnt,
  23.               pos=wxPoint(306, 270), size=wxSize(266, 265),
  24.               style=wxDEFAULT_FRAME_STYLE, title='Calculator1')
  25.         self.SetClientSize(wxSize(258, 225))
  26.         self.SetBackgroundColour(wxColour(0, 128, 0))
  27.         self.btn1 = wxButton(id=wxID_WXFRAME1BTN1, label='1', name='btn1',
  28.               parent=self, pos=wxPoint(16, 136), size=wxSize(32, 32), style=0)
  29.         EVT_BUTTON(self.btn1, wxID_WXFRAME1BTN1, self.OnBtn1Button)
  30.         self.btn2 = wxButton(id=wxID_WXFRAME1BTN2, label='2', name='btn2',
  31.               parent=self, pos=wxPoint(64, 136), size=wxSize(32, 32), style=0)
  32.         EVT_BUTTON(self.btn2, wxID_WXFRAME1BTN2, self.OnBtn2Button)
  33.         self.btn3 = wxButton(id=wxID_WXFRAME1BTN3, label='3', name='btn3',
  34.               parent=self, pos=wxPoint(112, 136), size=wxSize(32, 32), style=0)
  35.         EVT_BUTTON(self.btn3, wxID_WXFRAME1BTN3, self.OnBtn3Button)
  36.         self.btn4 = wxButton(id=wxID_WXFRAME1BTN4, label='4', name='btn4',
  37.               parent=self, pos=wxPoint(16, 96), size=wxSize(32, 32), style=0)
  38.         EVT_BUTTON(self.btn4, wxID_WXFRAME1BTN4, self.OnBtn4Button)
  39.         self.btn5 = wxButton(id=wxID_WXFRAME1BTN5, label='5', name='btn5',
  40.               parent=self, pos=wxPoint(64, 96), size=wxSize(32, 32), style=0)
  41.         EVT_BUTTON(self.btn5, wxID_WXFRAME1BTN5, self.OnBtn5Button)
  42.         self.btn6 = wxButton(id=wxID_WXFRAME1BTN6, label='6', name='btn6',
  43.               parent=self, pos=wxPoint(112, 96), size=wxSize(32, 32), style=0)
  44.         EVT_BUTTON(self.btn6, wxID_WXFRAME1BTN6, self.OnBtn6Button)
  45.         self.btn7 = wxButton(id=wxID_WXFRAME1BTN7, label='7', name='btn7',
  46.               parent=self, pos=wxPoint(16, 56), size=wxSize(32, 32), style=0)
  47.         EVT_BUTTON(self.btn7, wxID_WXFRAME1BTN7, self.OnBtn7Button)
  48.         self.btn8 = wxButton(id=wxID_WXFRAME1BTN8, label='8', name='btn8',
  49.               parent=self, pos=wxPoint(64, 56), size=wxSize(32, 32), style=0)
  50.         EVT_BUTTON(self.btn8, wxID_WXFRAME1BTN8, self.OnBtn8Button)
  51.         self.btn9 = wxButton(id=wxID_WXFRAME1BTN9, label='9', name='btn9',
  52.               parent=self, pos=wxPoint(112, 56), size=wxSize(32, 32), style=0)
  53.         EVT_BUTTON(self.btn9, wxID_WXFRAME1BTN9, self.OnBtn9Button)
  54.         self.btn0 = wxButton(id=wxID_WXFRAME1BTN0, label='0', name='btn0',
  55.               parent=self, pos=wxPoint(16, 176), size=wxSize(32, 32), style=0)
  56.         EVT_BUTTON(self.btn0, wxID_WXFRAME1BTN0, self.OnBtn0Button)
  57.         self.btnDot = wxButton(id=wxID_WXFRAME1BTNDOT, label='.', name='btnDot',
  58.               parent=self, pos=wxPoint(64, 176), size=wxSize(32, 32), style=0)
  59.         EVT_BUTTON(self.btnDot, wxID_WXFRAME1BTNDOT, self.OnBtnDotButton)
  60.         self.btnEqual = wxButton(id=wxID_WXFRAME1BTNEQUAL, label='=',
  61.               name='btnEqual', parent=self, pos=wxPoint(112, 176),
  62.               size=wxSize(32, 32), style=0)
  63.         EVT_BUTTON(self.btnEqual, wxID_WXFRAME1BTNEQUAL, self.OnBtnEqualButton)
  64.         self.edit = wxTextCtrl(id=wxID_WXFRAME1EDIT, name='edit', parent=self,
  65.               pos=wxPoint(16, 16), size=wxSize(224, 24), style=0, value='')
  66.         self.btnPlus = wxButton(id=wxID_WXFRAME1BTNPLUS, label='+',
  67.               name='btnPlus', parent=self, pos=wxPoint(160, 56), size=wxSize(32,
  68.               32), style=0)
  69.         EVT_BUTTON(self.btnPlus, wxID_WXFRAME1BTNPLUS, self.OnBtnPlusButton)
  70.         self.btnMinus = wxButton(id=wxID_WXFRAME1BTNMINUS, label='-',
  71.               name='btnMinus', parent=self, pos=wxPoint(160, 96),
  72.               size=wxSize(32, 32), style=0)
  73.         EVT_BUTTON(self.btnMinus, wxID_WXFRAME1BTNMINUS, self.OnBtnMinusButton)
  74.         self.btnMulti = wxButton(id=wxID_WXFRAME1BTNMULTI, label='*',
  75.               name='btnMulti', parent=self, pos=wxPoint(160, 136),
  76.               size=wxSize(32, 32), style=0)
  77.         EVT_BUTTON(self.btnMulti, wxID_WXFRAME1BTNMULTI, self.OnBtnMultiButton)
  78.         self.btnDiv = wxButton(id=wxID_WXFRAME1BTNDIV, label='/', name='btnDiv',
  79.               parent=self, pos=wxPoint(160, 176), size=wxSize(32, 32), style=0)
  80.         EVT_BUTTON(self.btnDiv, wxID_WXFRAME1BTNDIV, self.OnBtnDivButton)
  81.         self.btnClear = wxButton(id=wxID_WXFRAME1BTNCLEAR, label='C',
  82.               name='btnClear', parent=self, pos=wxPoint(208, 56),
  83.               size=wxSize(32, 32), style=0)
  84.         self.btnClear.SetToolTipString('btnClear')
  85.         EVT_BUTTON(self.btnClear, wxID_WXFRAME1BTNCLEAR, self.OnBtnClearButton)
  86.     def __init__(self, parent):
  87.         self._init_ctrls(parent)
  88. #endregion, above this marker is Boa generated code, do not edit!!!
  89. # now respond to all the button click events ...
  90.     def OnBtn0Button(self, event):
  91.         val = '0'
  92.         # get existing edit box text
  93.         txt = self.edit.GetValue()
  94.         # append text
  95.         txt = txt + val
  96.         # update edit box text
  97.         self.edit.SetValue(txt)
  98.     def OnBtn1Button(self, event):
  99.         val = '1'
  100.         txt = self.edit.GetValue()
  101.         txt = txt + val
  102.         self.edit.SetValue(txt)
  103.     def OnBtn2Button(self, event):
  104.         val = '2'
  105.         txt = self.edit.GetValue()
  106.         txt = txt + val
  107.         self.edit.SetValue(txt)
  108.     def OnBtn3Button(self, event):
  109.         val = '3'
  110.         txt = self.edit.GetValue()
  111.         txt = txt + val
  112.         self.edit.SetValue(txt)
  113.     def OnBtn4Button(self, event):
  114.         val = '4'
  115.         txt = self.edit.GetValue()
  116.         txt = txt + val
  117.         self.edit.SetValue(txt)
  118.        
  119.     def OnBtn5Button(self, event):
  120.         val = '5'
  121.         txt = self.edit.GetValue()
  122.         txt = txt + val
  123.         self.edit.SetValue(txt)
  124.     def OnBtn6Button(self, event):
  125.         val = '6'
  126.         txt = self.edit.GetValue()
  127.         txt = txt + val
  128.         self.edit.SetValue(txt)
  129.     def OnBtn7Button(self, event):
  130.         val = '7'
  131.         txt = self.edit.GetValue()
  132.         txt = txt + val
  133.         self.edit.SetValue(txt)
  134.     def OnBtn8Button(self, event):
  135.         val = '8'
  136.         txt = self.edit.GetValue()
  137.         txt = txt + val
  138.         self.edit.SetValue(txt)
  139.     def OnBtn9Button(self, event):
  140.         val = '9'
  141.         txt = self.edit.GetValue()
  142.         txt = txt + val
  143.         self.edit.SetValue(txt)
  144.     def OnBtnDotButton(self, event):
  145.         val = '.'
  146.         txt = self.edit.GetValue()
  147.         txt = txt + val
  148.         self.edit.SetValue(txt)
  149.     def OnBtnEqualButton(self, event):
  150.         txt = self.edit.GetValue()
  151.         # needs to contain a float so eg. 3/5 is 3/5.0
  152.         # otherwise division 3/5 would result in zero
  153.         if '/' in txt:
  154.             if '.' not in txt:
  155.                 txt = txt + '.0'
  156.         # now evaluate the math string
  157.         txt = repr(eval(txt))
  158.         # and show result in edit box
  159.         self.edit.SetValue(txt)
  160.     def OnBtnPlusButton(self, event):
  161.         val = '+'
  162.         txt = self.edit.GetValue()
  163.         txt = txt + val
  164.         self.edit.SetValue(txt)
  165.     def OnBtnMinusButton(self, event):
  166.         val = '-'
  167.         txt = self.edit.GetValue()
  168.         txt = txt + val
  169.         self.edit.SetValue(txt)
  170.     def OnBtnMultiButton(self, event):
  171.         val = '*'
  172.         txt = self.edit.GetValue()
  173.         txt = txt + val
  174.         self.edit.SetValue(txt)
  175.     def OnBtnDivButton(self, event):
  176.         val = '/'
  177.         txt = self.edit.GetValue()
  178.         txt = txt + val
  179.         self.edit.SetValue(txt)
  180.     def OnBtnClearButton(self, event):
  181.         self.edit.SetValue('')
  182. # --------------------  end of class wxFrame1 ----------------------
  183. def create(parent):
  184.     return wxFrame1(parent)
  185. class BoaApp(wxApp):
  186.     def OnInit(self):
  187.         wxInitAllImageHandlers()
  188.         self.main = create(None)
  189.         self.main.Show()
  190.         self.SetTopWindow(self.main)
  191.         return True
  192. def main():
  193.     application = BoaApp(0)
  194.     application.MainLoop()
  195. if __name__ == '__main__':
  196.     main()
  197. #//python/5735

回复 "wxpython开发的简单的gui计算器"

这儿你可以回复上面这条便签

captcha