zoukankan      html  css  js  c++  java
  • Wxpython零基础制作计算器

      

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

    以后同步更新到博客园和这个网站,www.empirefree.top, 这个网站备案号没有了,QAQ。


    相关环境及实现效果:
    wxpython下载:https://www.wxpython.org/pages/downloads/
    wxpython学习链接:https://wiki.woodpecker.org.cn/moin/WxPythonInAction
    Python:python3.6
    Pycharm编译器

    实现效果:
                                                

    整体分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 += '
    ' + str(target)  #计算值

    其他配置

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

      

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

     

  • 相关阅读:
    centos 7 pip install MySQL-python 报错
    修改centos history记录数上限
    CentOS 7 如何设置为eth0网卡
    字符串判空有空格报错:binary operator expected
    Linux指定用户运行程序
    MySQL 新建用户,为用户授权,指定用户访问数据库
    解决linux 中文乱码
    UNIX目录访问操作
    通过lseek产生空洞文件
    lseek系统调用
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/9835851.html
Copyright © 2011-2022 走看看