鱼C论坛

 找回密码
 立即注册
查看: 1143|回复: 3

用wxPython编写一个计算器

[复制链接]
发表于 2018-6-22 06:10:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import wx

  2. class MyFrame(wx.Frame):
  3.     def __init__(self):
  4.         wx.Frame.__init__(self,None,-1,'计算器',size = (260,340))
  5.         panel = wx.Panel(self)
  6.     #设置界面        
  7.         self.textShow = wx.TextCtrl(panel,-1,
  8.                                     size = (240,60),
  9.                                     pos = (0,0),
  10.                                     style = wx.TE_READONLY)        
  11.     #按键设定
  12.         self.btn7 = wx.Button(panel,-1,'7',size = (60,60), pos = (0,60))
  13.         self.btn8 = wx.Button(panel,-1,'8',size = (60,60), pos = (60,60))
  14.         self.btn9 = wx.Button(panel,-1,'9',size = (60,60), pos = (120,60))
  15.         self.btnDiv = wx.Button(panel,-1,'÷',size = (60,60), pos = (180,60))
  16.         self.btn4 = wx.Button(panel,-1,'4',size = (60,60), pos = (0,120))
  17.         self.btn5 = wx.Button(panel,-1,'5',size = (60,60), pos = (60,120))
  18.         self.btn6 = wx.Button(panel,-1,'6',size = (60,60), pos = (120,120))
  19.         self.btnMul = wx.Button(panel,-1,'×',size = (60,60), pos = (180,120))
  20.         self.btn1 = wx.Button(panel,-1,'1',size = (60,60), pos = (0,180))
  21.         self.btn2 = wx.Button(panel,-1,'2',size = (60,60), pos = (60,180))
  22.         self.btn3 = wx.Button(panel,-1,'3',size = (60,60), pos = (120,180))
  23.         self.btnSub = wx.Button(panel,-1,'-',size = (60,60), pos = (180,180))
  24.         self.btnPot = wx.Button(panel,-1,'.',size = (60,60), pos = (0,240))
  25.         self.btn0 = wx.Button(panel,-1,'0',size = (60,60), pos = (60,240))
  26.         self.btnRes = wx.Button(panel,-1,'=',size = (60,60), pos = (120,240))      
  27.         self.btnAdd = wx.Button(panel,-1,'+',size = (60,60), pos = (180,240))
  28.     #输入数据
  29.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn1)
  30.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn2)
  31.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn3)
  32.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn4)
  33.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn5)
  34.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn6)
  35.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn7)
  36.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn8)
  37.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btn9)
  38.         self.Bind(wx.EVT_BUTTON,self.ButtonSent,self.btnPot)
  39.     #计算方法
  40.         self.Bind(wx.EVT_BUTTON,self.ButtonCal,self.btnAdd)
  41.         self.Bind(wx.EVT_BUTTON,self.ButtonCal,self.btnSub)
  42.         self.Bind(wx.EVT_BUTTON,self.ButtonCal,self.btnMul)
  43.         self.Bind(wx.EVT_BUTTON,self.ButtonCal,self.btnDiv)
  44.     # 计算结果
  45.         self.Bind(wx.EVT_BUTTON,self.ButtonRes,self.btnRes)

  46.         
  47. [color=Red]  #该处的编写方法实在不懂,求高手指点下~~~[/color]
  48.     def ButtonSent(self,event):
  49.         userinput1 = self.textShow.GetValue()
  50.         userinput3 = self.textShow.GetValue()
  51.         self.btn1 = '1'
  52.         self.btn2 = '2'
  53.         self.btn3 = '3'
  54.         self.btn4 = '4'
  55.         self.btn5 = '5'
  56.         self.btn6 = '6'
  57.         self.btn7 = '7'
  58.         self.btn8 = '8'
  59.         self.btn9 = '9'
  60.         self.btnPot = '.'
  61.         
  62.         self.textShow.AppendText(userinput1)


  63.     #四则运算计算   
  64.     def ButtonCal(self,event):
  65.         uerinput2 =self.textShow.GetValue()
  66.         self.textShow.Clear()
  67.         userinput2 = {
  68.                         self.btnAdd: userinput1 + userinput3,
  69.                         self.btnSub: userinput1 - userinput3,
  70.                         self.btnMul: userinput1 * userinput3,
  71.                         self.btnDiv: userinput1 / userinput3
  72.                       }
  73.         result = userinput2
  74.         return result
  75. # 求值,输出
  76.     def ButtonRes(self,event):
  77.         print(result)
  78.             

  79. app = wx.App()
  80. frame = MyFrame()
  81. frame.Show()
  82. app.MainLoop()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-6-22 06:12:27 | 显示全部楼层
本人看视频完,想学着自己写个四则计算器。。实在水平不行,一些关键的代码不知道怎么写,另外一些写好的部分,也是很低级的写法,恳请高手指点~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-22 06:14:44 | 显示全部楼层
本人看视频完,自己学着写一个四则计算器。。。实际憋了很久,还是写不出一些关键步骤的代码,求高手指点迷津~~

另外,那些写好的代码,也是很低端的做法,感觉其中不少应该可以采用循环的方式进行。。求高手指点~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-24 16:06:11 | 显示全部楼层
恳请高手指点迷津~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 14:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表