欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Wxpython零基础制作计算器

程序员文章站 2022-03-11 08:37:09
本文关于Wxpython零基础利用python3.6在pycharm下制作计算器,文章末尾有免费源代码供下载 以后同步更新到博客园和这个网站,www.empirefree.top, 这个网站备案号没有了,QAQ。 相关环境及实现效果: wxpython下载:https://www.wxpython. ......

  

本文关于wxpython零基础利用python3.6在pycharm下制作计算器,文章末尾有免费源代码供下载

以后同步更新到博客园和这个网站,, 这个网站备案号没有了,qaq。


相关环境及实现效果:
wxpython下载:
wxpython学习链接:https://wiki.woodpecker.org.cn/moin/wxpythoninaction
python:python3.6
pycharm编译器

实现效果:
                                            Wxpython零基础制作计算器

 

整体分3个部分:整体布局,计算操作,其他配置 

整体布局

   我这里采用wx.frame加入gridbox和testprint即可(采用vertical垂直布局,然后利用buttondata加入各类数字就ojbk了,还分配了一下button之间的间距)

   

1 #垂直布局并部署表格
2 wx.frame.__init__(self, none, -1, 'empirefree', size=(350, 480), style=wx.default_frame_style ^ (wx.resize_border | wx.minimize_box | wx.maximize_box))
3 panel = wx.panel(self)
4 boxsize = wx.boxsizer(wx.vertical)
5 gridbox = wx.gridsizer(rows = 6, cols = 5, hgap = 7, vgap = 7)
6 self.textprint = wx.textctrl(panel, -1, '',  style=wx.te_multiline | wx.te_readonly)

 

计算操作

      在init初始化中,利用equation等式计算每按一个按钮,若在规定等式内,就开始检测(删除,清空,=,其他),然后进行计算(计算由于等式太多,所以有检测语法不合格的try,except语句,然后就是^符号要和其他要分开):(我tm疯了想用后缀表达式求值,结果我看别人一条语句就计算出来了,惊了!!!),然后清空self.equation(),方便下次输入

  

 1     def createhandler(self, button, labels):
 2         #根据不同按钮的值调用不同的方法
 3         if labels == '删除':
 4             self.bind(wx.evt_button, self.ondel, button)
 5         elif labels == '清空':
 6             self.bind(wx.evt_button, self.onac, button)
 7         elif labels == '=':
 8             self.bind(wx.evt_button, self.ontarget, button)
 9         else:
10             self.bind(wx.evt_button, self.onappend, button)
11      #按钮的相关布局
12         self.equation = ""  #记录等式
13         self.buttondata = "log2 sqrt ln pi 删除 sin cos tan e / 7 8 9 % * 4 5 6 ^ - 1 2 3 ) + 清空 0 . ( =".split()
14         self.equation += '\n' + str(target)  #计算值

 

其他配置

  弄到这里就差不多了,然后就没有啥了,简单搞了一下背景图片(background.jpg)和图标(ava.ico)就没有了

  

继续免费分享链接:https://pan.baidu.com/s/1wmgo7ax4zgcp_fn95t1cgw 提取码: 74nj