用Tkinter写一个拥有GUI的计算器

Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。我们可以使用它写出很多漂亮的GUI,这次,我写了一个计算器。

#tkinter用于写界面
import tkinter as tk

#创建窗口
window=tk.Tk()
window.title('计算器 by啊不嘟')

#窗口居中
sw = window.winfo_screenwidth()
sh = window.winfo_screenheight()
ww = 300
wh = 355
x = (sw-ww) / 2
y = (sh-wh) / 2
window.geometry("%dx%d+%d+%d" %(ww,wh,x,y))

#禁止拉伸
window.resizable(width=False, height=False)

#定义按键作用
def hit_equal():
    try:
        answer=eval(text.get().replace('×','*').replace('÷','/').replace('^','**'))
        if answer%1==0:
            answer=int(answer)
        text.delete(0,'end')
        text.insert('end',answer)
    except:
        text.delete(0,'end')
        text.insert('end','错误')
def hit(x):
    text.insert('end',x)
def hit_C():
    text.delete(0,'end')
def backspace():
    text.delete(len(text.get())-1,'end')

#定义并放置大框框
text = tk.Entry(window, bg='white', width=17, font=('微软雅黑', 19))
text.place(x=20, y=10)
text.insert('end', '')

#创建按键并放置在窗口
b7=tk.Button(window,text='7',width=6,height=2,command=lambda: hit('7')).place(x=20,y=113)
b8=tk.Button(window,text='8',width=6,height=2,command=lambda: hit('8')).place(x=87,y=113)
b9=tk.Button(window,text='9',width=6,height=2,command=lambda: hit('9')).place(x=157,y=113)
b4=tk.Button(window,text='4',width=6,height=2,command=lambda: hit('4')).place(x=20,y=173)
b1=tk.Button(window,text='1',width=6,height=2,command=lambda: hit('1')).place(x=20,y=233)
b5=tk.Button(window,text='5',width=6,height=2,command=lambda: hit('5')).place(x=87,y=173)
b6=tk.Button(window,text='6',width=6,height=2,command=lambda: hit('6')).place(x=157,y=173)
b2=tk.Button(window,text='2',width=6,height=2,command=lambda: hit('2')).place(x=87,y=233)
b3=tk.Button(window,text='3',width=6,height=2,command=lambda: hit('3')).place(x=157,y=233)
b_decimal_point=tk.Button(window,text='.',width=6,height=2,command=lambda: hit('.')).place(x=157,y=293)
b0=tk.Button(window,text='0',width=6,height=2,command=lambda: hit('0')).place(x=87,y=293)
b00=tk.Button(window,text='00',width=6,height=2,command=lambda: hit('00')).place(x=20,y=293)
bbackspace=tk.Button(window,text='←',width=6,height=2,command=backspace).place(x=87,y=53)
bC=tk.Button(window,text='C',width=6,height=2,command=hit_C).place(x=20,y=53)
b_cube_root=tk.Button(window,text='xⁿ',width=6,height=2,command=lambda: hit('^')).place(x=157,y=53)
b_plus=tk.Button(window,text='+',width=6,height=2,command=lambda: hit('+')).place(x=227,y=53)
b_minus=tk.Button(window,text='-',width=6,height=2,command=lambda: hit('7')).place(x=227,y=113)
b_multiplication=tk.Button(window,text='×',width=6,height=2,command=lambda: hit('×')).place(x=227,y=173)
b_division=tk.Button(window,text='÷',width=6,height=2,command=lambda: hit('÷')).place(x=227,y=233)
b_equal=tk.Button(window,text='=',width=6,height=2,command=hit_equal).place(x=227,y=293)

#会话循环
window.mainloop()
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:啊不都 » 用Tkinter写一个拥有GUI的计算器

avatar
本站站长,一个苦逼的学生党

评论 1

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1
    avatar

    迁移了~~顶一下

    admin5个月前 (05-18)来自美国的网友Reply
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活