python学习第四天

来源:互联网 发布:焦晃 北平无战事 知乎 编辑:程序博客网 时间:2024/06/04 23:26

wxpython写的计算器

#!/usr/bin/env python# -*- coding: utf-8 -*-#  -*- coding: utf-8 -*-才能支持中文import osimport wxclass MainWindow(wx.Frame):"""docstring for MainWindow"""def __init__(self, parent, title):super(MainWindow, self).__init__(parent, title = title, size = (270, 250))self.InitUI()self.Center()self.Show()def InitUI(self):# panel = wx.Panel(self)box = wx.BoxSizer(wx.VERTICAL)# 输入框self.display = wx.TextCtrl(self, style = wx.TE_LEFT, value = "0")self.display.SetEditable(False)self.display.SetInsertionPoint(0)self.display.SetThemeEnabled(False)box.Add(self.display, flag = wx.EXPAND | wx.TOP | wx.BOTTOM, border = 5)self.buttongroup = Noneself.displayButtons()box.Add(self.buttongroup, flag = wx.EXPAND, border = 5)self.SetSizer(box)self.setButton()def displayButtons(self):self.button0 = wx.Button(self, label = '0')self.button1 = wx.Button(self, label = '1')self.button2 = wx.Button(self, label = '2')self.button3 = wx.Button(self, label = '3')self.button4 = wx.Button(self, label = '4')self.button5 = wx.Button(self, label = '5')self.button6 = wx.Button(self, label = '6')self.button7 = wx.Button(self, label = '7')self.button8 = wx.Button(self, label = '8')self.button9 = wx.Button(self, label = '9')self.buttonAdd = wx.Button(self, label = '+')self.buttonMunis = wx.Button(self, label = '-')self.buttonMutiply = wx.Button(self, label = '*')self.buttonDevide = wx.Button(self, label = '/')self.buttonBack = wx.Button(self, label = 'back')self.buttonDot = wx.Button(self, label = '.')self.buttonClear = wx.Button(self, label = 'clear')self.buttonLeft = wx.Button(self, label = '(')self.buttonRight = wx.Button(self, label = ')')self.buttonEqual = wx.Button(self, label = '=')self.buttongroup = wx.GridSizer(5, 4, 5, 5)self.buttongroup.AddMany([(self.button7, 0, wx.EXPAND),(self.button8, 0, wx.EXPAND),(self.button9, 0, wx.EXPAND),(self.buttonAdd, 0, wx.EXPAND),(self.button4, 0, wx.EXPAND),(self.button5, 0, wx.EXPAND),(self.button6, 0, wx.EXPAND),(self.buttonMunis, 0, wx.EXPAND),(self.button1, 0, wx.EXPAND),(self.button2, 0, wx.EXPAND),(self.button3, 0, wx.EXPAND),(self.buttonMutiply, 0, wx.EXPAND),(self.buttonBack, 0, wx.EXPAND),(self.button0, 0, wx.EXPAND),(self.buttonDot, 0, wx.EXPAND),(self.buttonDevide, 0, wx.EXPAND),(self.buttonClear, 0, wx.EXPAND),(self.buttonLeft, 0, wx.EXPAND),(self.buttonRight, 0, wx.EXPAND),(self.buttonEqual, 0, wx.EXPAND),])def clickButton0(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("0")else:self.display.SetValue(text + "0")event.Skip()def clickButton1(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("1")else:self.display.SetValue(text + "1")event.Skip()def clickButton2(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("2")else:self.display.SetValue(text + "2")event.Skip()def clickButton3(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("3")else:self.display.SetValue(text + "3")event.Skip()def clickButton4(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("4")else:self.display.SetValue(text + "4")event.Skip()def clickButton5(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("5")else:self.display.SetValue(text + "5")event.Skip()def clickButton6(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("6")else:self.display.SetValue(text + "6")event.Skip()def clickButton7(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("7")else:self.display.SetValue(text + "7")event.Skip()def clickButton8(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("8")else:self.display.SetValue(text + "8")event.Skip()def clickButton9(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("9")else:self.display.SetValue(text + "9")event.Skip()def clickLeftButton(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue("(")else:self.display.SetValue(text + "(")event.Skip()def clickRightButton(self, event):text = self.display.GetValue()if "0" == text:self.display.SetValue(")")else:self.display.SetValue(text + ")")event.Skip()def clickAddButton(self, event):self.display.SetValue(self.display.GetValue() + "+")event.Skip()def clickMinusButton(self, event):self.display.SetValue(self.display.GetValue() + "-")event.Skip()def clickMutiplyButton(self, event):self.display.SetValue(self.display.GetValue() + "*")event.Skip()def clickDevideButton(self, event):self.display.SetValue(self.display.GetValue() + "/")event.Skip()def clickDotButton(self, event):self.display.SetValue(self.display.GetValue() + ".")event.Skip()def clickClearButton(self, event):self.display.SetValue("0")event.Skip()def clickBackButton(self, event):text = self.display.GetValue()if 1 == len(text):self.display.SetValue("0")else:self.display.SetValue(text[0 : (len(text) - 1)])event.Skip()def clickEqualButton(self, event):try:result = eval(self.display.GetValue())except:result = "0"self.display.SetValue(str(result))event.Skip()def setButton(self):self.Bind(wx.EVT_BUTTON, self.clickButton0, self.button0)self.Bind(wx.EVT_BUTTON, self.clickButton1, self.button1)self.Bind(wx.EVT_BUTTON, self.clickButton2, self.button2)self.Bind(wx.EVT_BUTTON, self.clickButton3, self.button3)self.Bind(wx.EVT_BUTTON, self.clickButton4, self.button4)self.Bind(wx.EVT_BUTTON, self.clickButton5, self.button5)self.Bind(wx.EVT_BUTTON, self.clickButton6, self.button6)self.Bind(wx.EVT_BUTTON, self.clickButton7, self.button7)self.Bind(wx.EVT_BUTTON, self.clickButton8, self.button8)self.Bind(wx.EVT_BUTTON, self.clickButton9, self.button9)self.Bind(wx.EVT_BUTTON, self.clickAddButton, self.buttonAdd)self.Bind(wx.EVT_BUTTON, self.clickMinusButton, self.buttonMunis)self.Bind(wx.EVT_BUTTON, self.clickMutiplyButton, self.buttonMutiply)self.Bind(wx.EVT_BUTTON, self.clickDevideButton, self.buttonDevide)self.Bind(wx.EVT_BUTTON, self.clickEqualButton, self.buttonEqual)self.Bind(wx.EVT_BUTTON, self.clickBackButton, self.buttonBack)self.Bind(wx.EVT_BUTTON, self.clickClearButton, self.buttonClear)self.Bind(wx.EVT_BUTTON, self.clickDotButton, self.buttonDot)self.Bind(wx.EVT_BUTTON, self.clickLeftButton, self.buttonLeft)self.Bind(wx.EVT_BUTTON, self.clickRightButton, self.buttonRight)def main():app = wx.App(False)frame = MainWindow(None, u"计算器")app.MainLoop()if __name__ == '__main__':main()


运行结果:


0 0