Wxpython零基础制作计算器

实现效果:

《Wxpython零基础制作计算器》

整体分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://zhuanlan.zhihu.com/p/47640578
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞