今天写一个wxpython的计算器,此处代码:
#!/usr/bin/python # -*- coding: utf-8 -*- # calculator.py import wx class Example(wx.Frame): bianliang1 = '0' bianliang2 = '0' judge = "" def __init__(self, parent, title): super(Example, self).__init__(parent, title=title, size=(300, 250)) self.InitUI() self.Centre() self.Show() def OnButtonClick0(self, event): var = self.display.GetValue() var = int(var)*10 + 0 self.display.Value = str(var) def OnButtonClick1(self, event): var = self.display.GetValue() var = int(var)*10 + 1 self.display.Value = str(var) def OnButtonClick2(self, event): var = self.display.GetValue() var = int(var)*10 + 2 self.display.Value = str(var) def OnButtonClick3(self, event): var = self.display.GetValue() var = int(var)*10 + 3 self.display.Value = str(var) def OnButtonClick4(self, event): var = self.display.GetValue() var = int(var)*10 + 4 self.display.Value = str(var) def OnButtonClick5(self, event): var = self.display.GetValue() var = int(var)*10 + 5 self.display.Value = str(var) def OnButtonClick6(self, event): var = self.display.GetValue() var = int(var)*10 + 6 self.display.Value = str(var) def OnButtonClick7(self, event): var = self.display.GetValue() var = int(var)*10 + 7 self.display.Value = str(var) def OnButtonClick8(self, event): var = self.display.GetValue() var = int(var)*10 + 8 self.display.Value = str(var) def OnButtonClick9(self, event): var = self.display.GetValue() var = int(var)*10 + 9 self.display.Value = str(var) def OnButtonCls(self, event): self.display.Value = '0' def OnButtonBck(self, event): var = self.display.GetValue() var = int(var)/10 self.display.Value = str(var) def OnButtonClickClose(self, event): wx.Exit() def OnButtonClickJia(self, event): self.bianliang1 = self.display.GetValue() self.display.Value = '0' self.judge="+" def OnButtonClickJian(self, event): self.bianliang1 = self.display.GetValue() self.display.Value = '0' self.judge="-" def OnButtonClickChe(self, event): self.bianliang1 = self.display.GetValue() self.display.Value = '0' self.judge="*" def OnButtonClickChu(self, event): self.bianliang1 = self.display.GetValue() self.display.Value = '0' self.judge="/" def OnButtonClickEqu(self, event): bianliang2 = self.display.GetValue() if self.judge == '+': self.display.Value = str(int(self.bianliang1)+int(bianliang2)) elif self.judge == '-': self.display.Value = str(int(self.bianliang1)-int(bianliang2)) elif self.judge == '*': self.display.Value = str(int(self.bianliang1)*int(bianliang2)) elif self.judge == '/': self.display.Value = str(int(self.bianliang1)/int(bianliang2)) def InitUI(self): menubar = wx.MenuBar() fileMenu = wx.Menu() menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) vbox = wx.BoxSizer(wx.VERTICAL) self.display = wx.TextCtrl(self, style=wx.TE_RIGHT,value='0') vbox.Add(self.display, flag=wx.EXPAND|wx.TOP|wx.BOTTOM, border=4) gs = wx.GridSizer(4, 4, 5, 5) buttonCls = wx.Button(self, label='Cls') buttonBck = wx.Button(self, label='Bck') buttonClose = wx.Button(self, label='Close') button7 = wx.Button(self, label='7') button8 = wx.Button(self, label='8') button9 = wx.Button(self, label='9') buttonChu = wx.Button(self, label='/') button4 = wx.Button(self, label='4') button5 = wx.Button(self, label='5') button6 = wx.Button(self, label='6') buttonChen = wx.Button(self, label='*') button1 = wx.Button(self, label='1') button2 = wx.Button(self, label='2') button3 = wx.Button(self, label='3') buttonJian = wx.Button(self, label='-') button0 = wx.Button(self, label='0') buttonDot = wx.Button(self, label='.') buttonEqu = wx.Button(self, label='=') buttonPlus = wx.Button(self, label='+') gs.AddMany([ (buttonCls, 0, wx.EXPAND), (buttonBck, 0, wx.EXPAND), (wx.StaticText(self), wx.EXPAND), (buttonClose, 0, wx.EXPAND), (button7, 0, wx.EXPAND), (button8, 0, wx.EXPAND), (button9, 0, wx.EXPAND), (buttonChu, 0, wx.EXPAND), (button4, 0, wx.EXPAND), (button5, 0, wx.EXPAND), (button6, 0, wx.EXPAND), (buttonChen, 0, wx.EXPAND), (button1, 0, wx.EXPAND), (button2, 0, wx.EXPAND), (button3, 0, wx.EXPAND), (buttonJian, 0, wx.EXPAND), (button0, 0, wx.EXPAND), (buttonDot, 0, wx.EXPAND), (buttonEqu, 0, wx.EXPAND), (buttonPlus, 0, wx.EXPAND) ]) buttonCls.Bind(wx.EVT_BUTTON,self.OnButtonCls) buttonBck.Bind(wx.EVT_BUTTON,self.OnButtonBck) buttonClose.Bind(wx.EVT_BUTTON,self.OnButtonClickClose) button0.Bind(wx.EVT_BUTTON,self.OnButtonClick0) button1.Bind(wx.EVT_BUTTON,self.OnButtonClick1) button2.Bind(wx.EVT_BUTTON,self.OnButtonClick2) button3.Bind(wx.EVT_BUTTON,self.OnButtonClick3) button4.Bind(wx.EVT_BUTTON,self.OnButtonClick4) button5.Bind(wx.EVT_BUTTON,self.OnButtonClick5) button6.Bind(wx.EVT_BUTTON,self.OnButtonClick6) button7.Bind(wx.EVT_BUTTON,self.OnButtonClick7) button8.Bind(wx.EVT_BUTTON,self.OnButtonClick8) button9.Bind(wx.EVT_BUTTON,self.OnButtonClick9) buttonEqu.Bind(wx.EVT_BUTTON,self.OnButtonClickEqu) buttonPlus.Bind(wx.EVT_BUTTON,self.OnButtonClickJia) buttonJian.Bind(wx.EVT_BUTTON,self.OnButtonClickJian) buttonChen.Bind(wx.EVT_BUTTON,self.OnButtonClickChe) buttonChu.Bind(wx.EVT_BUTTON,self.OnButtonClickChu) vbox.Add(gs, proportion=1, flag=wx.EXPAND) self.SetSizer(vbox) if __name__ == '__main__': app = wx.App() Example(None, title='Calculator') app.MainLoop()