ices_ 2017-03-26 03:14 采纳率: 0%
浏览 880

求大神将下面的大多数代码注释,一个计算器的功能实现,用到了wx插件,

import wx

begin wxGlade: extracode

end wxGlade

class MyFrame(wx.Frame):
def init(self, *args, **kwds):
# begin wxGlade: MyFrame.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.text_ctrl_1 = wx.TextCtrl(self, -1, "",style=wx.TE_READONLY)
self.button_37 = wx.Button(self, -1, "1")
self.button_38 = wx.Button(self, -1, "2")
self.button_39 = wx.Button(self, -1, "3")
self.button_40 = wx.Button(self, -1, "+")
self.button_41 = wx.Button(self, -1, "4")
self.button_42 = wx.Button(self, -1, "5")
self.button_43 = wx.Button(self, -1, "6")
self.button_44 = wx.Button(self, -1, "-")
self.button_46 = wx.Button(self, -1, "7")
self.button_45 = wx.Button(self, -1, "8")
self.button_47 = wx.Button(self, -1, "9")
self.button_48 = wx.Button(self, -1, "x")
self.button_49 = wx.Button(self, -1, "C")
self.button_50 = wx.Button(self, -1, "0")
self.button_51 = wx.Button(self, -1, "=")
self.button_52 = wx.Button(self, -1, "/")

    self.__set_properties()
    self.__do_layout()

    self.Bind(wx.EVT_BUTTON, self.bu1, self.button_37)
    self.Bind(wx.EVT_BUTTON, self.bu2, self.button_38)
    self.Bind(wx.EVT_BUTTON, self.bu3, self.button_39)
    self.Bind(wx.EVT_BUTTON, self.bu_plus, self.button_40)
    self.Bind(wx.EVT_BUTTON, self.bu4, self.button_41)
    self.Bind(wx.EVT_BUTTON, self.bu5, self.button_42)
    self.Bind(wx.EVT_BUTTON, self.bu6, self.button_43)
    self.Bind(wx.EVT_BUTTON, self.bu_min, self.button_44)
    self.Bind(wx.EVT_BUTTON, self.bu7, self.button_46)
    self.Bind(wx.EVT_BUTTON, self.bu8, self.button_45)
    self.Bind(wx.EVT_BUTTON, self.bu9, self.button_47)
    self.Bind(wx.EVT_BUTTON, self.bu_mul, self.button_48)
    self.Bind(wx.EVT_BUTTON, self.bu_clear, self.button_49)
    self.Bind(wx.EVT_BUTTON, self.bu0, self.button_50)
    self.Bind(wx.EVT_BUTTON, self.bu_result, self.button_51)
    self.Bind(wx.EVT_BUTTON, self.bu_chu, self.button_52)
    # end wxGlade
    self.Show(True)

def __set_properties(self):
    # begin wxGlade: MyFrame.__set_properties
    self.SetTitle("Python Calculater by CYG")
    self.text_ctrl_1.SetMinSize((400, 50))
    self.button_37.SetMinSize((100, 50))
    self.button_38.SetMinSize((100, 50))
    self.button_39.SetMinSize((100, 50))
    self.button_40.SetMinSize((100, 50))
    self.button_41.SetMinSize((100, 50))
    self.button_42.SetMinSize((100, 50))
    self.button_43.SetMinSize((100, 50))
    self.button_44.SetMinSize((100, 50))
    self.button_46.SetMinSize((100, 50))
    self.button_45.SetMinSize((100, 50))
    self.button_47.SetMinSize((100, 50))
    self.button_48.SetMinSize((100, 50))
    self.button_49.SetMinSize((100, 50))
    self.button_50.SetMinSize((100, 50))
    self.button_51.SetMinSize((100, 50))
    self.button_52.SetMinSize((100, 50))
    # end wxGlade

def __do_layout(self):
    # begin wxGlade: MyFrame.__do_layout
    sizer_2 = wx.BoxSizer(wx.VERTICAL)
    sizer_3 = wx.BoxSizer(wx.VERTICAL)
    grid_sizer_1 = wx.GridSizer(4, 4, 0, 0)
    sizer_3.Add(self.text_ctrl_1, 0, 0, 0)
    grid_sizer_1.Add(self.button_37, 0, 0, 0)
    grid_sizer_1.Add(self.button_38, 0, 0, 0)
    grid_sizer_1.Add(self.button_39, 0, 0, 0)
    grid_sizer_1.Add(self.button_40, 0, 0, 0)
    grid_sizer_1.Add(self.button_41, 0, 0, 0)
    grid_sizer_1.Add(self.button_42, 0, 0, 0)
    grid_sizer_1.Add(self.button_43, 0, 0, 0)
    grid_sizer_1.Add(self.button_44, 0, 0, 0)
    grid_sizer_1.Add(self.button_46, 0, 0, 0)
    grid_sizer_1.Add(self.button_45, 0, 0, 0)
    grid_sizer_1.Add(self.button_47, 0, 0, 0)
    grid_sizer_1.Add(self.button_48, 0, 0, 0)
    grid_sizer_1.Add(self.button_49, 0, 0, 0)
    grid_sizer_1.Add(self.button_50, 0, 0, 0)
    grid_sizer_1.Add(self.button_51, 0, 0, 0)
    grid_sizer_1.Add(self.button_52, 0, 0, 0)
    sizer_3.Add(grid_sizer_1, 1, wx.EXPAND, 0)
    sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
    self.SetSizer(sizer_2)
    sizer_2.Fit(self)
    self.Layout()
    # end wxGlade

def bu1(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("1")
    event.Skip()

def bu2(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("2")
    event.Skip()

def bu3(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("3")
    event.Skip()

def bu_plus(self, event):  # wxGlade: MyFrame.<event_handler>
    self.num1=self.text_ctrl_1.GetValue()
    self.op="+"
    self.text_ctrl_1.Clear()
    event.Skip()

def bu4(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("4")
    event.Skip()

def bu5(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("5")
    event.Skip()

def bu6(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("6")
    event.Skip()

def bu_min(self, event):  # wxGlade: MyFrame.<event_handler>
    self.num1=self.text_ctrl_1.GetValue()
    self.op="-"
    self.text_ctrl_1.Clear()
    event.Skip()

def bu7(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("7")
    event.Skip()

def bu8(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("8")
    event.Skip()

def bu9(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("9")
    event.Skip()

def bu_mul(self, event):  # wxGlade: MyFrame.<event_handler>
    self.num1=self.text_ctrl_1.GetValue()
    self.op="x"
    self.text_ctrl_1.Clear()
    event.Skip()

def bu_clear(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.Clear()
    event.Skip()

def bu0(self, event):  # wxGlade: MyFrame.<event_handler>
    self.text_ctrl_1.AppendText("0")
    event.Skip()

def bu_chu(self, event):  # wxGlade: MyFrame.<event_handler>
    self.num1=self.text_ctrl_1.GetValue()
    self.op="/"
    self.text_ctrl_1.Clear()
    event.Skip()

def bu_result(self, event):  # wxGlade: MyFrame.<event_handler>
    self.num2=self.text_ctrl_1.GetValue()
    num1=int(self.num1)
    num2=int(self.num2)
    if self.op=="+":
        self.text_ctrl_1.SetValue(str(num1+num2))
    elif self.op=="-":
        self.text_ctrl_1.SetValue(str(num1-num2))
    elif self.op=="x":
        self.text_ctrl_1.SetValue(str(num1*num2))
    elif self.op=="/":
        self.text_ctrl_1.SetValue(str(num1/num2))
    event.Skip()

end of class MyFrame

if name == "__main__":

app=wx.App(False)
myframe=MyFrame(None)
app.MainLoop()
  • 写回答

1条回答 默认 最新

  • threenewbee 2017-03-26 15:37
    关注
     很多代码是类似的,你可以举一反三
    self.button_37 = wx.Button(self, -1, "1")
    这些都是添加各种按钮
    grid_sizer_1.Add(self.button_37, 0, 0, 0)
    把这些按钮添加到网格界面上
    self.Bind(wx.EVT_BUTTON, self.bu1, self.button_37)
    这是绑定按钮和对应处理的代码
    def bu1(self, event):  # wxGlade: MyFrame.<event_handler>
        self.text_ctrl_1.AppendText("1")
        event.Skip()
    比如说这个是1的按钮,给当前文本添加一个1
    
    def bu_result(self, event):  # wxGlade: MyFrame.<event_handler>
        self.num2=self.text_ctrl_1.GetValue()
        num1=int(self.num1)
        num2=int(self.num2)
        if self.op=="+":
            self.text_ctrl_1.SetValue(str(num1+num2))
        elif self.op=="-":
            self.text_ctrl_1.SetValue(str(num1-num2))
        elif self.op=="x":
            self.text_ctrl_1.SetValue(str(num1*num2))
        elif self.op=="/":
            self.text_ctrl_1.SetValue(str(num1/num2))
        event.Skip()
    这是四则运算
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3