Python利用Thinker设计GUI界面,编写计算器

先设计计算器的主界面
from tkinter import *

# 设计主窗口
root = Tk()
root.title("计算器")
root.geometry("400x500")
var = StringVar()

设计操作界面 

fm1和fm2分别显示区域和按键区域

fm1 = LabelFrame(height=150, width=600, bg='light gray', border=2)
fm1.pack(side="top")
Label(fm1, text="", bd=5, justify=RIGHT, textvariable=var).place(x=25, y=20, width=350, height=100)

fm2 = Frame(height=500, width=500, bg='light gray', border=1)
fm2.pack(side="bottom")
最后
设计按键,为每个按键设计对应的事件
Button(fm2, bd=5, text="C", height=2, width=10, command=lambda: var.set("")).grid(row=0, column=0)
Button(fm2, bd=5, text="DEL", height=2, width=10, command=lambda: var.set(var.get()[:-1])).grid(row=0, column=1)
Button(fm2, bd=5, text="BCK", height=2, width=10, command=lambda: var.set(var.get()[1:])).grid(row=0, column=2)
Button(fm2, bd=5, text="/", height=2, width=10, command=lambda: var.set(var.get() + "/")).grid(row=0, column=3)
Button(fm2, bd=5, text="7", height=2, width=10, command=lambda: var.set(var.get() + "7")).grid(row=1, column=0)
Button(fm2, bd=5, text="8", height=2, width=10, command=lambda: var.set(var.get() + "8")).grid(row=1, column=1)
Button(fm2, bd=5, text="9", height=2, width=10, command=lambda: var.set(var.get() + "9")).grid(row=1, column=2)
Button(fm2, bd=5, text="*", height=2, width=10, command=lambda: var.set(var.get() + "*")).grid(row=1, column=3)
Button(fm2, bd=5, text="4", height=2, width=10, command=lambda: var.set(var.get() + "4")).grid(row=2, column=0)
Button(fm2, bd=5, text="5", height=2, width=10, command=lambda: var.set(var.get() + "5")).grid(row=2, column=1)
Button(fm2, bd=5, text="6", height=2, width=10, command=lambda: var.set(var.get() + "6")).grid(row=2, column=2)
Button(fm2, bd=5, text="-", height=2, width=10, command=lambda: var.set(var.get() + "-")).grid(row=2, column=3)
Button(fm2, bd=5, text="1", height=2, width=10, command=lambda: var.set(var.get() + "1")).grid(row=3, column=0)
Button(fm2, bd=5, text="2", height=2, width=10, command=lambda: var.set(var.get() + "2")).grid(row=3, column=1)
Button(fm2, bd=5, text="3", height=2, width=10, command=lambda: var.set(var.get() + "3")).grid(row=3, column=2)
Button(fm2, bd=5, text="+", height=2, width=10, command=lambda: var.set(var.get() + "+")).grid(row=3, column=3)
Button(fm2, bd=5, text="0", height=2, width=10, command=lambda: var.set(var.get() + "0")).grid(row=4, column=0)
Button(fm2, bd=5, text=".", height=2, width=10, command=lambda: var.set(var.get() + ".")).grid(row=4, column=1)
Button(fm2, bd=5, text="=", height=2, width=22, command=lambda: var.set(str(eval(var.get())))).grid(row=4, column=2, columnspan=2)
root.mainloop()

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值