从0到1 python简易计算器

</pre><pre name="code" class="python"><p>利用Tkinter实现一个简易的计算器</p><p># !/usr/bin/env python</p># -*-coding:utf-8 -*-

import Stack
from Tkinter import *

root = Tk()
root.title('Caculator')   #Set Title of Frame

class App:
	def Button_Click(self,key):
		self.stack.push(1)
		self.input_str += key
		print self.input_str
		self.var.set(self.input_str)
	def D_Click(self):
		self.input_str = self.input_str[0:-1]
		print self.input_str
		self.var.set(self.input_str)
	def E_Click(self):
		result = eval(self.input_str)
		self.var.set(result)
		self.input_str = ''
	def __init__(self,master):
		list = []
		self.stack = Stack.Stack(list)

		self.var = StringVar()
		self.var.set("")
		self.input_str = ''

		# If your command option has argument , please use lamdba	
		self.show = Entry(master, textvariable=self.var).grid(row = 0, columnspan = 3 )
		Button(master, text = '1', command=lambda: self.Button_Click('1'), activeforeground='white',activebackground='green').grid(row=1,column=0)
		Button(master, text = '2', command=lambda: self.Button_Click('2'), activeforeground='white',activebackground='green').grid(row=1,column=1)
		Button(master, text = '3', command=lambda: self.Button_Click('3'), activeforeground='white',activebackground='green').grid(row=1,column=2)
		Button(master, text = '4', command=lambda: self.Button_Click('4'), activeforeground='white',activebackground='green').grid(row=2,column=0)
		Button(master, text = '5', command=lambda: self.Button_Click('5'), activeforeground='white',activebackground='green').grid(row=2,column=1)
		Button(master, text = '6', command=lambda: self.Button_Click('6'), activeforeground='white',activebackground='green').grid(row=2,column=2)
		Button(master, text = '7', command=lambda: self.Button_Click('7'), activeforeground='white',activebackground='green').grid(row=3,column=0)
		Button(master, text = '8', command=lambda: self.Button_Click('8'), activeforeground='white',activebackground='green').grid(row=3,column=1)
		Button(master, text = '9', command=lambda: self.Button_Click('9'), activeforeground='white',activebackground='green').grid(row=3,column=2)
				
		self.D  = Button(master, text = '←', command=self.D_Click, activeforeground='white',activebackground='green').grid(row=4,column=0)
		Button(master, text = '+', command=lambda: self.Button_Click('+'), activeforeground='white',activebackground='green').grid(row=4,column=1)
		self.E  = Button(master, text = '=', command=self.E_Click, activeforeground='white',activebackground='green').grid(row=4,column=2)
		
		Button(master, text = '0', command=lambda: self.Button_Click('0'), activeforeground='white',activebackground='green').grid(row=5, sticky=W, columnspan = 2)
		Button(master, text = '.', command=lambda: self.Button_Click('.'), activeforeground='white',activebackground='green').grid(row=5,column=2)

if __name__ == "__main__":
	app = App(root)
	root.mainloop() 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值