Python设计简易计算器

import tkinter as tk

windows = tk.Tk()
windows.title('简易计算器')
windows.geometry('295x265+100+100')

windows.attributes('-alpha', 0.9)  # 透明效果
windows['background'] = '#ffffff'  # 背景色

res_var = tk.StringVar()
res_var.set('0')
res_label = tk.Label(windows, textvariable=res_var, font=('宋体', 22, 'bold'), height=2, bg='#ffffff', width=7,
                     anchor=tk.SE)
res_label.grid(row=1, column=1, columnspan=4, sticky=tk.EW)

btn_clear = tk.Button(windows, text='C', width=7, bg='#b3b2b3')
btn_clear.grid(row=2, column=1, padx=6.5, pady=5)
btn_back = tk.Button(windows, text='<--', width=7, bg='#b3b2b3')
btn_back.grid(row=2, column=2, padx=6.5, pady=5)
btn_div = tk.Button(windows, text='/', width=7, bg='#b3b2b3')
btn_div.grid(row=2, column=3, padx=6.5, pady=5)
btn_mutiple = tk.Button(windows, text='*', width=7, bg='#b3b2b3')
btn_mutiple.grid(row=2, column=4, padx=6.5, pady=5)

btn_7 = tk.Button(windows, text='7', width=7, bg='#eecd9f')
btn_7.grid(row=3, column=1, padx=6.5, pady=5)
btn_8 = tk.Button(windows, text='8', width=7, bg='#eecd9f')
btn_8.grid(row=3, column=2, padx=6.5, pady=5)
btn_9 = tk.Button(windows, text='9', width=7, bg='#eecd9f')
btn_9.grid(row=3, column=3, padx=6.5, pady=5)
btn_reduce = tk.Button(windows, text='—', width=7, bg='#b3b2b3')
btn_reduce.grid(row=3, column=4, padx=6.5, pady=5)

btn_4 = tk.Button(windows, text='4', width=7, bg='#eecd9f')
btn_4.grid(row=4, column=1, padx=6.5, pady=5)
btn_5 = tk.Button(windows, text='5', width=7, bg='#eecd9f')
btn_5.grid(row=4, column=2, padx=6.5, pady=5)
btn_6 = tk.Button(windows, text='6', width=7, bg='#eecd9f')
btn_6.grid(row=4, column=3, padx=6.5, pady=5)
btn_add = tk.Button(windows, text='+', width=7, bg='#b3b2b3')
btn_add.grid(row=4, column=4, padx=6.5, pady=5)

btn_1 = tk.Button(windows, text='1', width=7, bg='#eecd9f')
btn_1.grid(row=5, column=1, padx=6.5, pady=5)
btn_2 = tk.Button(windows, text='2', width=7, bg='#eecd9f')
btn_2.grid(row=5, column=2, padx=6.5, pady=5)
btn_3 = tk.Button(windows, text='3', width=7, bg='#eecd9f')
btn_3.grid(row=5, column=3, padx=6.5, pady=5)
btn_equal = tk.Button(windows, text='=', width=7, bg='#b3b2b3')
btn_equal.grid(row=5, column=4, rowspan=2, padx=6.5, pady=5, sticky=tk.NS)

btn_0 = tk.Button(windows, text='0', width=7, bg='#eecd9f')
btn_0.grid(row=6, column=1, columnspan=2, padx=6.5, pady=5, sticky=tk.EW)

btn_dot = tk.Button(windows, text='.', width=7, bg='#eecd9f')
btn_dot.grid(row=6, column=3, padx=6.5, pady=5)


# 点击事件
def click_btn(x):
    symbol = ['+','-','*','/']
    if res_var.get() == '0' and x not in symbol:
        res_var.set('')
    res_var.set(res_var.get() + x)

def calculation():
    result = res_var.get()
    res_var.set(eval(str(result)))


def clear():
    res_var.set('0')

def back():
    string = res_var.get()
    i = string[:len(string)-1]
    if i:
        res_var.set(i)
    else:
        res_var.set('0')

btn_0.config(command=lambda: click_btn('0'))
btn_1.config(command=lambda: click_btn('1'))
btn_2.config(command=lambda: click_btn('2'))
btn_3.config(command=lambda: click_btn('3'))
btn_4.config(command=lambda: click_btn('4'))
btn_5.config(command=lambda: click_btn('5'))
btn_6.config(command=lambda: click_btn('6'))
btn_7.config(command=lambda: click_btn('7'))
btn_8.config(command=lambda: click_btn('8'))
btn_9.config(command=lambda: click_btn('9'))

btn_dot.config(command=lambda: click_btn('.'))
btn_add.config(command=lambda: click_btn('+'))
btn_reduce.config(command=lambda: click_btn('-'))
btn_mutiple.config(command=lambda: click_btn('*'))
btn_div.config(command=lambda: click_btn('/'))

btn_equal.config(command=calculation)
btn_clear.config(command=clear)
btn_back.config(command=back)

windows.mainloop()

效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值