我在学习GUI界面编程后,做一个简单的加法计算器,文本框接受输入的字符,但是不会转浮点型,试了很多种方法都没解决。请教如何转换。 加法事件在OnClickMath 函数处, 目前的计算结果是1+1=11,1+2=12,是字符串合并。
- 我在学习GUI界面编程后,做一个简单的加法计算器,文本框接受输入的字符,但是不会转浮点型,试了很多种方法都没解决。请教如何转换。 加法事件在OnClickMath 函数处, 目前的计算结果是1+1=11,1+2=12,是字符串合并。
- WeChat Screenshot_20200213093905.png
- import wx
- class MyFrame(wx.Frame):
- def __init__(self,parent,id):
- wx.Frame.__init__(self,parent,id,"计算器",size=(600,500))
- panel=wx.Panel(self)
- #创建一个标题
- self.title=wx.StaticText(panel,label="加法计算器")
- #创建第一个文本输入框
- self.box1=wx.TextCtrl(panel,style=wx.TE_CENTER)
- #创建一个加号
- self.puls=wx.StaticText(panel,label="+")
- #创建第二个文本输入框
- self.box2=wx.TextCtrl(panel,style=wx.TE_CENTER)
- #创建等号
- self.equr=wx.StaticText(panel,label="=")
- #创建结果框
- self.box3=wx.TextCtrl(panel,style=wx.TE_CENTER)
- #创建一个计算按钮
- self.math=wx.Button(panel,label="计算")
- self.math.Bind(wx.EVT_BUTTON,self.OnClickMath)
- #创建一个清除按钮
- self.clean=wx.Button(panel,label="清空")
- self.clean.Bind(wx.EVT_BUTTON,self.OnClickClean)
- #创建一个退出按钮
- self.exit=wx.Button(panel,label="退出")
- self.exit.Bind(wx.EVT_BUTTON,self.OnClickExit)
- #创建容器
- #第一横向盒
- hsizer_math=wx.BoxSizer(wx.HORIZONTAL)
- hsizer_math.Add(self.box1,proportion=0,flag=wx.ALL,border=5)
- hsizer_math.Add(self.puls,proportion=1,flag=wx.ALL,border=5)
- hsizer_math.Add(self.box2,proportion=2,flag=wx.ALL,border=5)
- hsizer_math.Add(self.equr,proportion=3,flag=wx.ALL,border=5)
- hsizer_math.Add(self.box3,proportion=4,flag=wx.ALL,border=5)
- #第二横向盒
- hsizer_click=wx.BoxSizer(wx.HORIZONTAL)
- hsizer_click.Add(self.math,proportion=0,flag=wx.ALL,border=15)
- hsizer_click.Add(self.clean,proportion=0,flag=wx.ALL,border=15)
- hsizer_click.Add(self.exit,proportion=0,flag=wx.ALL,border=15)
- #一个竖盒
- vsizer=wx.BoxSizer(wx.VERTICAL)
- vsizer.Add(self.title,proportion=0,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,border=15)
- vsizer.Add(hsizer_math,proportion=0,flag=wx.ALL,border=45)
- vsizer.Add(hsizer_click,proportion=0,flag=wx.ALL,border=65)
- panel.SetSizer(vsizer)
- #定义OnclickMath函数
- <font color="#ff0000"> def OnClickMath(self,event):
- text1=self.box1.GetValue()
- text2=self.box2.GetValue()
- text3=text1+text2
- self.box3.SetValue(text3)</font>
- #定义OnclickMath函数
- def OnClickClean(self,event):
- self.box1.SetValue("")
- self.box2.SetValue("")
- self.box3.SetValue("")
- #定义OnclickMath函数
- def OnClickExit(self,event):
- self.Close()
- if __name__ == "__main__":
- app=wx.App()
- frame=MyFrame(parent=None,id=-1)
- frame.Show()
- app.MainLoop()
复制代码
|