Python使用wxPython实现计算器

本文实例为大家分享了wxPython实现计算器的具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*-

##########################################
## Python code generated with wxFormBuilder (version Feb 16 2016)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
##########################################

import wx
import wx.xrc
import math

#############################################
## Class MyFrame1
#############################################

class MyFrame1(wx.Frame):
  def __init__(self, parent):
    wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
             size=wx.Size(486, 448), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

    self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

    bSizer1 = wx.BoxSizer(wx.VERTICAL)

    self.m_textCtrl1 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(600, 60), style=wx.TE_RIGHT)
    self.m_textCtrl1.SetMinSize(wx.Size(470, 60))

    bSizer1.Add(self.m_textCtrl1, 0, wx.ALL, 5)

    bSizer2 = wx.BoxSizer(wx.HORIZONTAL)

    self.m_button1 = wx.Button(self, wx.ID_ANY, u"退格", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer2.Add(self.m_button1, 0, wx.ALL, 5)

    self.m_button2 = wx.Button(self, wx.ID_ANY, u"清屏", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer2.Add(self.m_button2, 0, wx.ALL, 5)

    self.m_button3 = wx.Button(self, wx.ID_ANY, u"sqrt", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer2.Add(self.m_button3, 0, wx.ALL, 5)

    self.m_button4 = wx.Button(self, wx.ID_ANY, u"/", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer2.Add(self.m_button4, 0, wx.ALL, 5)

    bSizer1.Add(bSizer2, 0, wx.EXPAND, 5)

    bSizer6 = wx.BoxSizer(wx.HORIZONTAL)

    self.m_button10 = wx.Button(self, wx.ID_ANY, u"7", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer6.Add(self.m_button10, 0, wx.ALL, 5)

    self.m_button11 = wx.Button(self, wx.ID_ANY, u"8", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer6.Add(self.m_button11, 0, wx.ALL, 5)

    self.m_button12 = wx.Button(self, wx.ID_ANY, u"9", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer6.Add(self.m_button12, 0, wx.ALL, 5)

    self.m_button13 = wx.Button(self, wx.ID_ANY, u"*", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer6.Add(self.m_button13, 0, wx.ALL, 5)

    bSizer1.Add(bSizer6, 0, wx.EXPAND, 5)

    bSizer7 = wx.BoxSizer(wx.HORIZONTAL)

    self.m_button15 = wx.Button(self, wx.ID_ANY, u"4", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer7.Add(self.m_button15, 0, wx.ALL, 5)

    self.m_button16 = wx.Button(self, wx.ID_ANY, u"5", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer7.Add(self.m_button16, 0, wx.ALL, 5)

    self.m_button17 = wx.Button(self, wx.ID_ANY, u"6", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer7.Add(self.m_button17, 0, wx.ALL, 5)

    self.m_button18 = wx.Button(self, wx.ID_ANY, u"-", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer7.Add(self.m_button18, 0, wx.ALL, 5)

    bSizer1.Add(bSizer7, 0, wx.EXPAND, 5)

    bSizer34 = wx.BoxSizer(wx.HORIZONTAL)

    self.m_button140 = wx.Button(self, wx.ID_ANY, u"1", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer34.Add(self.m_button140, 0, wx.ALL, 5)

    self.m_button141 = wx.Button(self, wx.ID_ANY, u"2", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer34.Add(self.m_button141, 0, wx.ALL, 5)

    self.m_button142 = wx.Button(self, wx.ID_ANY, u"3", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer34.Add(self.m_button142, 0, wx.ALL, 5)

    self.m_button143 = wx.Button(self, wx.ID_ANY, u"+", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer34.Add(self.m_button143, 0, wx.ALL, 5)

    bSizer1.Add(bSizer34, 0, wx.EXPAND, 5)

    bSizer35 = wx.BoxSizer(wx.HORIZONTAL)

    self.m_button145 = wx.Button(self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer35.Add(self.m_button145, 0, wx.ALL, 5)

    self.m_button148 = wx.Button(self, wx.ID_ANY, u".", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer35.Add(self.m_button148, 0, wx.ALL, 5)

    self.m_button149 = wx.Button(self, wx.ID_ANY, u"+/-", wx.DefaultPosition, wx.Size(110, 60), 0)
    bSizer35.Add(self.m_button149, 0, wx.ALL, 5)

    self.m_button150 = wx.Button(self, wx.ID_ANY, u"=", wx.DefaultPosition, wx.Size(110, 600), 0)
    self.m_button150.SetMinSize(wx.Size(110, 60))

    bSizer35.Add(self.m_button150, 0, wx.ALL, 5)

    bSizer1.Add(bSizer35, 0, wx.EXPAND, 5)

    self.SetSizer(bSizer1)
    self.Layout()

    self.Centre(wx.BOTH)

    # Connect Events
    self.m_button1.Bind(wx.EVT_BUTTON, self.m_button1OnButtonClick)
    self.m_button2.Bind(wx.EVT_BUTTON, self.m_button2OnButtonClick)
    self.m_button3.Bind(wx.EVT_BUTTON, self.m_button3OnButtonClick)
    self.m_button4.Bind(wx.EVT_BUTTON, self.m_button4OnButtonClick)
    self.m_button10.Bind(wx.EVT_BUTTON, self.m_button10OnButtonClick)
    self.m_button11.Bind(wx.EVT_BUTTON, self.m_button11OnButtonClick)
    self.m_button12.Bind(wx.EVT_BUTTON, self.m_button12OnButtonClick)
    self.m_button13.Bind(wx.EVT_BUTTON, self.m_button13OnButtonClick)
    self.m_button15.Bind(wx.EVT_BUTTON, self.m_button15OnButtonClick)
    self.m_button16.Bind(wx.EVT_BUTTON, self.m_button16OnButtonClick)
    self.m_button17.Bind(wx.EVT_BUTTON, self.m_button17OnButtonClick)
    self.m_button18.Bind(wx.EVT_BUTTON, self.m_button18OnButtonClick)
    self.m_button140.Bind(wx.EVT_BUTTON, self.m_button140OnButtonClick)
    self.m_button141.Bind(wx.EVT_BUTTON, self.m_button141OnButtonClick)
    self.m_button142.Bind(wx.EVT_BUTTON, self.m_button142OnButtonClick)
    self.m_button143.Bind(wx.EVT_BUTTON, self.m_button143OnButtonClick)
    self.m_button145.Bind(wx.EVT_BUTTON, self.m_button145OnButtonClick)
    self.m_button148.Bind(wx.EVT_BUTTON, self.m_button148OnButtonClick)
    self.m_button149.Bind(wx.EVT_BUTTON, self.m_button149OnButtonClick)
    self.m_button150.Bind(wx.EVT_BUTTON, self.m_button150OnButtonClick)

  def __del__(self):
    pass

  # Virtual event handlers, overide them in your derived class
  def m_button1OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result[:-1]
    self.m_textCtrl1.SetValue(result)

  def m_button2OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=''
    self.m_textCtrl1.SetValue(result)

  def m_button3OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=int(result)
    result=math.sqrt(result)
    self.m_textCtrl1.SetValue(str(result))

  def m_button4OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'/'
    self.m_textCtrl1.SetValue(result)

  def m_button10OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'7'
    self.m_textCtrl1.SetValue(result)

  def m_button11OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'8'
    self.m_textCtrl1.SetValue(result)

  def m_button12OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'9'
    self.m_textCtrl1.SetValue(result)

  def m_button13OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'*'
    self.m_textCtrl1.SetValue(result)

  def m_button15OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'4'
    self.m_textCtrl1.SetValue(result)

  def m_button16OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'5'
    self.m_textCtrl1.SetValue(result)

  def m_button17OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'6'
    self.m_textCtrl1.SetValue(result)

  def m_button18OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'-'
    self.m_textCtrl1.SetValue(result)

  def m_button140OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'1'
    self.m_textCtrl1.SetValue(result)

  def m_button141OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'2'
    self.m_textCtrl1.SetValue(result)

  def m_button142OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'3'
    self.m_textCtrl1.SetValue(result)

  def m_button143OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'+'
    self.m_textCtrl1.SetValue(result)

  def m_button145OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'0'
    self.m_textCtrl1.SetValue(result)

  def m_button148OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=result+'.'
    self.m_textCtrl1.SetValue(result)

  def m_button149OnButtonClick(self, event):
    result=self.m_textCtrl1.GetValue()
    result=-int(result)
    self.m_textCtrl1.SetValue(str(result))

  def m_button150OnButtonClick(self, event):
    self.m_textCtrl1.SetValue(str(eval(self.m_textCtrl1.GetValue())))

app=wx.App()
window=MyFrame1(None)
window.Show(True)
app.MainLoop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • python实现简易版计算器
  • Python+tkinter使用40行代码实现计算器功能
  • Python Tkinter实现简易计算器功能
  • python使用tkinter实现简单计算器
  • python 简易计算器程序,代码就几行
  • 仅用50行代码实现一个Python编写的计算器的教程
  • 基于python的Tkinter实现一个简易计算器
  • Python实现简单的四则运算计算器
  • python正则表达式之作业计算器
  • 基于wxpython开发的简单gui计算器实例
(0)

相关推荐

  • python正则表达式之作业计算器

    作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 一.说明: 有一点bug就是不能计算幂次方,如:'6**6'会报错 该计算器思路: 1.没用使用递归,先找出并计算所有括号里的公式,再计算乘除

  • python 简易计算器程序,代码就几行

    代码: 复制代码 代码如下: import os while True: dynamic = input('输入计算表达式:') if dynamic != 'cls': try: result = eval(dynamic) print('计算结果:'+str(result)) except: print('计算表达式输入有误!') else: command = 'cls' os.system(command)

  • 仅用50行代码实现一个Python编写的计算器的教程

     简介 在这篇文章中,我将向大家演示怎样向一个通用计算器一样解析并计算一个四则运算表达式.当我们结束的时候,我们将得到一个可以处理诸如 1+2*-(-3+2)/5.6+3样式的表达式的计算器了.当然,你也可以将它拓展的更为强大. 我本意是想提供一个简单有趣的课程来讲解 语法分析 和 正规语法(编译原理内容).同时,介绍一下PlyPlus,这是一个我断断续续改进了好几年的语法解析 接口.作为这个课程的附加产物,我们最后会得到完全可替代eval()的一个安全的四则运算器. 如果你想在自家的电脑上试试

  • python实现简易版计算器

    学了一周的Python,这篇文章算是为这段时间自学做的小总结. 一.Python简介 Python是一门十分优美的脚本语言,如果学过java.c++那入门Python是非常简单的.Python具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写. 二.Python版计算器的实现 工具准备: 1.

  • Python Tkinter实现简易计算器功能

    闲暇时间用tkinter写了个简易计算器,可实现简单的加减乘除运算,用了Button和Entry2个控件,下面是代码,只是简单的用了偏函数partial,因为那么多button的大部分参数都是一样的,使用偏函数可以简化参数传递,避免同样的参数传递写N次. # -*- coding: utf-8 -*- #author: Cullen #import the module from Tkinter import * import tkFont import os from functools im

  • python使用tkinter实现简单计算器

    本文实例为大家分享了python使用tkinter实现简单计算器的具体代码,供大家参考,具体内容如下 class Counter: #引入tkinter import tkinter as tk #引入消息弹窗模块 import tkinter.messagebox as mbox #初始化Counter def __init__(self): #生成一个窗口对象 self.window = self.tk.Tk() #命名窗口对象的显示title self.window.title('计算器'

  • Python实现简单的四则运算计算器

    一.算法 1.算法的主要思想就是将一个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式的结果. 2.关于如何讲普通的表达式转换成后缀表达式,以及如何处理后缀表达式并计算出结果的具体算法描述不在此叙述了,书上有详细的说明. 二.简易计算器 使用说明 使用该计算器类的简单示例如下: # usage c = Calculator() print('result: {:f}'.formart(c

  • 基于python的Tkinter实现一个简易计算器

    本文实例介绍了基于python的Tkinter实现简易计算器的详细代码,分享给大家供大家参考,具体内容如下 第一种:使用python 的 Tkinter实现一个简易计算器 #coding:utf-8 from Tkinter import * import time root = Tk() def cacl(input_str): if "x" in input_str: ret = input_str.split("x") return int(ret[0]) *

  • Python+tkinter使用40行代码实现计算器功能

    本文实例为大家分享了40行Python代码实现计算器功能,供大家参考,具体内容如下 偶尔用脚本写点东西也是不错的. 效果图 代码 from tkinter import * reset=True def buttonCallBack(event): global label global reset num=event.widget['text'] if num=='C': label['text']="0" return if num in "=": label[

  • 基于wxpython开发的简单gui计算器实例

    本文实例讲述了基于wxpython开发的简单gui计算器.分享给大家供大家参考.具体如下: # wxCalc1 a simple GUI calculator using wxPython # created with the Boa Constructor which generates all the GUI components # all I had to do is add some code for each button click event # Boa free from: h

随机推荐