论坛首页 编程语言技术论坛

给MM写的一个计算器(python Tk编写)

浏览 9190 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-02   最后修改:2009-12-10

直接上代码:

 

from __future__ import division 
from Tkinter import Tk, Entry, Button, Label, mainloop
from tkFont import Font


def pp(ev=None):
  foodl = ''
  try: foodl = eval( text.get())
  except : pass
  if isinstance(foodl, (int,float,long)): pass
  else: foodl = 'Error..'
  label.config(text=foodl)


#主窗口
top = Tk()
top.title('compute')

ft = Font(family = ('Verdana'), size = 8 ) #字体
#注册组件
text = Entry(top, font= ft)
button = Button(top, text='计算(注意先后运算)', command=pp)
label = Label(text='运算符: + - * / % **', font=ft)


Enter = lambda x: x.keycode == 13 and pp()

Key = lambda x: label.config(text='运算符: + - * / % **')

text.bind('<Key>', Enter)#回车事件
text.focus()  #获得焦点

#

text.bind('<Button-1>', Key)
text.pack()
button.pack() 
label.pack()
mainloop()

 

 

就这么多了,   有什么更好的解决方案,欢迎评论!

 

 

 

附件有截图和用PyInstaller打包好的exe文件

图片不能全部显示, 点击查看就可以了

 

源码已经上传...

  • 大小: 3.2 KB
  • 大小: 3.1 KB
  • 大小: 3.1 KB
   发表时间:2009-12-03  
下载下来看看 有源码吗
0 请登录后投票
   发表时间:2009-12-04  
linwenbin 写道
下载下来看看 有源码吗


源码已经全部贴出来了!!

我传一个吧...
0 请登录后投票
   发表时间:2009-12-04  
另外我不知道,Tk窗口居中的方法..

如果有知道,请告知!!
0 请登录后投票
   发表时间:2009-12-07  
进入还可以这么看,我还以为楼主去自己计算里面的括号、加减乘除呢。。。

C:\Documents and Settings\flyingzl>python
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> s='(23+2)*3-(1*4)'
>>> eval(s)
71
>>>
0 请登录后投票
   发表时间:2009-12-07  
“注意先后运算”,太雷了
0 请登录后投票
   发表时间:2009-12-08  
高级语言就是好
一个eval解决了很多事情
0 请登录后投票
   发表时间:2009-12-08  
用eval比较简单,适合在mm面前显显,但是不适合自我提升,直接用逆波兰,不知道python里有没有什么LL(1)的文法生成框架
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics