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之间的间距)
#垂直布局并部署表格
wx.Frame.__init__(self, None, -1, 'Empirefree', size=(350, 480), style=wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX))
panel = wx.Panel(self)
boxsize = wx.BoxSizer(wx.VERTICAL)
gridBox = wx.GridSizer(rows = 6, cols = 5, hgap = 7, vgap = 7)
self.textprint = wx.TextCtrl(panel, -1, '', style=wx.TE_MULTILINE | wx.TE_READONLY)
计算操作
在init初始化中,利用equation等式计算每按一个按钮,若在规定等式内,就开始检测(删除,清空,=,其他),然后进行计算(计算由于等式太多,所以有检测语法不合格的try,except语句,然后就是^符号要和其他要分开):(我TM疯了想用后缀表达式求值,结果我看别人一条语句就计算出来了,惊了!!!),然后清空self.equation(),方便下次输入
def createHandler(self, button, labels):
#根据不同按钮的值调用不同的方法
if labels == '删除':
self.Bind(wx.EVT_BUTTON, self.OnDel, button)
elif labels == '清空':
self.Bind(wx.EVT_BUTTON, self.OnAc, button)
elif labels == '=':
self.Bind(wx.EVT_BUTTON, self.OnTarget, button)
else:
self.Bind(wx.EVT_BUTTON, self.OnAppend, button)
#按钮的相关布局
self.equation = "" #记录等式
self.buttonData = "log2 sqrt ln pi 删除 sin cos tan e / 7 8 9 % * 4 5 6 ^ - 1 2 3 ) + 清空 0 . ( =".split()
self.equation += '\n' + str(target) #计算值
其他配置
弄到这里就差不多了,然后就没有啥了,简单搞了一下背景图片(background.jpg)和图标(ava.ico)就没有了
继续免费分享链接:https://pan.baidu.com/s/1WmGo7Ax4zGCP_fN95t1cgw 提取码: 74nj
Wxpython零基础制作计算器的更多相关文章
- 微信小程序零基础制作指南
第一步 准备工作 下载腾讯官方的微信web开发工具并且安装 第二步 登录已经注册小程序的微信账号并且选择合适的路径新建小程序项目. 新建一个页面文件夹,每一个页面需要一个文件夹,里面包括写逻辑脚本的j ...
- c#制作计算器全过程
前言: 网上看的计算器制作只有代码,没有为全过程下面贴图,所以我在下面主要是贴图,让大家零基础制作计算器. 我的环境是visual studio 2010,其他版本例如2008,2012 都可以 1. ...
- 还在花钱搞开发?猿团YTFCloud,零基础照样做专业APP
近日,猿团科技再推新品:YTFCloud.这是一套一体化的云端解决方案,用户可以通过平台提供的各类解决方案,一键创建应用,也就是说,YTFCloud实现了APP的DIY自制,用户无需懂得编程,零基础制 ...
- 《零基础学习Python制作ArcGIS自定义工具》课程简介
Python for ArcGIS Python for ArcGIS是借助Python语言实现ArcGIS自动化行为的综合,它不止是如课程标题所述的“制作ArcGIS自定义工具”,还包括使用Pyth ...
- javascript入门视频第一天 小案例制作 零基础开始学习javascript
JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此 ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- Python零基础学习系列之二--Python介绍及环境搭建
1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像P ...
- 【零基础】一文读懂CPU(从二极管到超大规模集成电路)
一.前言 我们都知道芯片,也知道芯片技术在21世纪是最重要的技术之一,但很少有人能知道芯片技术的一些细节,如芯片是如何构造的.为什么它可以运行程序.芯片又是如何被设计制造出来的等等.本文就尝试从最底层 ...
- [web建站] 优课急送《零基础快速学习建站》视频+课件【价值399元】
[课程介绍]你想快速建一个网站出来吗?你想从什么都不懂到一两天出一个漂漂亮亮的站吗?你想完成领导交给你的任务找人建站吗?你想自己建站来创业吗?你想学会建站之后,利用给别人建站来赚钱吗?你想建一个跟某个 ...
随机推荐
- XML反序列化遇到数字型节点值为空导致反序列化异常
实体类: [XmlRoot("stream")] public class _30320DuisiFukuanQueryResponseModel : ResponseModelB ...
- Web API 入门 二 媒体类型
还是拿上面 那篇 Web API 入门 一 的那个来讲 在product类中加一个时间属性
- 在PHP5.3以上版本运行ecshop出现的问题及解决方案
ecshop 问题一:商城首页报错 Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\ ...
- Css预处理器---Less(一)
一.简介: Less是一种动态样式语言,可以在样式中使用变量,继承,运算,函数 二.使用 (1)客户端使用 //引入您的.less样式文件,rel属性区别去css为stylesheet/less &l ...
- 第四章 HTML5概述
HTML5概述1.HTML5优势:解决跨浏览器问题:部分代替原来的js更明确地语义支持:不再单纯使用div增强WEB应用程序地功能:拖拽API等 2.HTML5语法改变标签不再区分大小写元素可以省略结 ...
- programmatically detect whenever test run is in debug mode
if (System.Diagnostics.Debugger.IsAttached) // code or timeout value when running tests in debug ...
- 通过改hosts访问wikipedia
能访问https://www.wikipedia.org 大部分时候我们是可以访问的wikipedia的主页或是英文首页的,但中文页面却经常被墙,这时候你可以通过在命令行下ping www.wikip ...
- 《大话设计模式》c++实现 之策略模式
一.UML图 二.概念 策略模式:他定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 三.优点 (1)策略模式是一种定义一系列算法的方法,从 ...
- 记一次CentOS5.7更新glibc导致libc.so.6失效,系统无法启动
以下是错误示范,错误过程还原,请勿模仿!!! wkhtmltopdf 启动,提示/lib64/libc.so.6版本过低 $ ./wkhtmltopdf http:www.baidu.com 1. ...
- KL距离,Kullback-Leibler Divergence
http://www.cnblogs.com/ywl925/p/3554502.html http://www.cnblogs.com/hxsyl/p/4910218.html http://blog ...