研发基于GUI框架的简易计算器

#使用面向对象思想研发简易计算器
#导入相关的类库文件
import wx
class cal_GUI():
    # 类的初始化方法,创建所有的控件
    def __init__(self):
        self.app=wx.App()
        self.window=wx.Frame(None,title="计算器",size=(600,500))
        self.panel=wx.Panel(self.window)
        #创建文本框
        self.txtNuml=wx.TextCtrl(self.panel)
        self.txtOperator=wx.TextCtrl(self.panel)
        self.txtNum2=wx.TextCtrl(self.panel)
        self.txtResult=wx.TextCtrl(self.panel)
        #创建按钮控件
        self.equal=wx.Button(self.panel,label="=")
     #定义布局
    def boxsizer(self):
        #设置一个水平的BoxSizer
        boxsizer1=wx.BoxSizer(wx.HORIZONTAL)
        #把3个文本框加入BoxSize1中
        boxsizer1.Add(self.txtNuml,proportion=1,flag=wx.LEFT,border=8)
        boxsizer1.Add(self.txtOperator,proportion=0,flag=wx.LEFT,border=8)
        boxsizer1.Add(self.txtNum2,proportion=1,flag=wx.LEFT|wx.RIGHT,border=8)
        #设置一个垂直的BoxSizer
        boxsizer2=wx.BoxSizer(wx.VERTICAL)
        boxsizer2.Add(boxsizer1,flag=wx.TOP|wx.EXPAND,border=8)
        boxsizer2.Add(self.equal,flag=wx.TOP|wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=8)
        boxsizer2.Add(self.txtResult,proportion=1,flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,border=8)
        #让boxsizer生效
        self.panel.SetSizer(boxsizer2)
        
     #定义运算事件
    def cal_event(self,event):
        #获取控件中输入的内容
        num1=self.txtNuml.GetValue()
        Operator=self.txtOperator.GetValue()
        num2=self.txtNum2.GetValue()
        #根据运算符进行运算处理
        if Operator=="+":
            r=float(num1)+float(num2)
        elif Operator=="-":
            r=float(num1)-float(num2)
        elif Operator=="*":
            r=float(num1)*float(num2)
        elif Operator=="/":
            r=float(num1)/float(num2)
        else:
            print("错误")

        # 将输出数据放入结果文本框中
        self.txtResult.SetValue(str(r))

    #将"="按钮和运算事件绑定
    def bind_set(self):
        self.equal.Bind(wx.EVT_BUTTON,self.cal_event)
    #定义显示方法
    def run(self):
        # 激活窗体
        self.window.Show(True)
        #运行APP
        self.app.MainLoop()
if __name__ == '__main__':
    cal_GUI_obj=cal_GUI()
    cal_GUI_obj.boxsizer()
    cal_GUI_obj.bind_set()
    cal_GUI_obj.run()

在这里插入图片描述
在这里插入图片描述

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页