tkinter-简单计算器

import tkinter as tk
from tkinter import *
from functools import partial

#读取数据
def get_input(entry,argu):
    entry.insert(END,argu)

#删除数据
def back_input(entry):
    input_len=len(entry.get())
    if input_len>0:
      entry.delete(input_len-1)


#清空数据
def clear(entry):
    entry.delete(0,END)

#计算数据
def cal(entry):
    input=entry.get()
    ouput=str(eval(input.strip()))
    clear(entry)
    entry.insert(END,ouput)
    
    
root=tk.Tk()
root.title("计算器")
root.resizable(width=False,height=False)

entry=tk.Entry(root,justify="right",font=("微软雅黑",12))
entry.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
myButton=partial(tk.Button,root,bg="#D5E0EE",activebackground="#E5E35B",padx=10, pady=3)

button_7=myButton(text="7",command=lambda :get_input(entry,'7'))
button_7.grid(row=1,column=0,pady=5)
button_8=myButton(text="8",command=lambda :get_input(entry,'8'))
button_8.grid(row=1,column=1,pady=5)
button_9=myButton(text="9",command=lambda :get_input(entry,'9'))
button_9.grid(row=1,column=2,pady=5)
button_add=myButton(text="+",command=lambda :get_input(entry,'+'))
button_add.grid(row=1,column=3,pady=5)

button_4=myButton(text="4",command=lambda :get_input(entry,'4'))
button_4.grid(row=2,column=0,pady=5)
button_5=myButton(text="5",command=lambda :get_input(entry,'5'))
button_5.grid(row=2,column=1,pady=5)
button_5=myButton(text="6",command=lambda :get_input(entry,'6'))
button_5.grid(row=2,column=2,pady=5)
button_sub=myButton(text="-",command=lambda :get_input(entry,'-'))
button_sub.grid(row=2,column=3,pady=5)

button_1=myButton(text="1",command=lambda :get_input(entry,'1'))
button_1.grid(row=3,column=0,pady=5)
button_2=myButton(text="2",command=lambda :get_input(entry,'2'))
button_2.grid(row=3,column=1,pady=5)
button_3=myButton(text="3",command=lambda :get_input(entry,'3'))
button_3.grid(row=3,column=2,pady=5)
button_mul=myButton(text="*",command=lambda :get_input(entry,'*'))
button_mul.grid(row=3,column=3,pady=5)

button_0=myButton(text="0",command=lambda :get_input(entry,'0'))
button_0.grid(row=4,column=0,columnspan=2,pady=5,padx=10,sticky = tk.W+tk.N+tk.E+tk.S)
button_dot=myButton(text=".",command=lambda :get_input(entry,'.'))
button_dot.grid(row=4,column=2,pady=5)
button_div=myButton(text="/",command=lambda :get_input(entry,'/'))
button_div.grid(row=4,column=3,pady=5)

button_back=myButton(text="back",command=lambda :back_input(entry))
button_back.grid(row=5,column=0,pady=5)
button_clear=myButton(text="C",command=lambda :clear(entry))
button_clear.grid(row=5,column=1,pady=5)
button_equal=myButton(text="=",command=lambda :cal(entry))
button_equal.grid(row=5,column=2,columnspan=2,pady=5,sticky=W+N+S+E)

root.mainloop()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用 tkinter 实现的简易计算器: ```python import tkinter as tk class Calculator: def __init__(self, master): self.master = master master.title("简易计算器") # 定义显示结果的文本框 self.result_var = tk.StringVar() self.result_var.set('') self.result_entry = tk.Entry(master, textvariable=self.result_var, justify='right', font=('Arial', 16)) self.result_entry.grid(row=0, column=0, columnspan=4, sticky='nsew') # 定义所有数字按钮 numbers = [ ['7', '8', '9'], ['4', '5', '6'], ['1', '2', '3'], ['0', '.', '='] ] for i, row in enumerate(numbers, start=1): for j, num in enumerate(row): button = tk.Button(master, text=num, font=('Arial', 16), command=lambda x=num: self.button_click(x)) button.grid(row=i, column=j, sticky='nsew') # 定义所有运算符按钮 operators = ['/', '*', '-', '+'] for i, operator in enumerate(operators, start=1): button = tk.Button(master, text=operator, font=('Arial', 16), command=lambda x=operator: self.button_click(x)) button.grid(row=i, column=3, sticky='nsew') # 定义清除和退格按钮 clear_button = tk.Button(master, text='C', font=('Arial', 16), command=self.clear) clear_button.grid(row=0, column=3, sticky='nsew') back_button = tk.Button(master, text='<-', font=('Arial', 16), command=self.backspace) back_button.grid(row=0, column=2, sticky='nsew') def button_click(self, button): if button == '=': try: result = eval(self.result_var.get()) self.result_var.set(str(result)) except: self.result_var.set('Error') else: self.result_var.set(self.result_var.get() + button) def clear(self): self.result_var.set('') def backspace(self): self.result_var.set(self.result_var.get()[:-1]) root = tk.Tk() app = Calculator(root) root.mainloop() ``` 这个计算器界面看起来像这样: ![calculator](https://i.loli.net/2021/04/28/g1YiUMkJaH3wZSf.png) 你可以复制以上代码并运行它。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值