python使用GUI写一个简易的计算器

import tkinter as tk

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

# 解决半透明问题
root.attributes('-alpha',1)   # 不透明度0.9
# root['background'] = '#ffffff'  # 背景色#ffffff

font = ('宋体',20)
font_16 = ('宋体',16)
result_num = tk.StringVar()
# result_num.set(0)

tk.Label(root,
         textvariable = result_num, font = font, height = 2, width = 20, justify = tk.LEFT, anchor = tk.SE
         ).grid(row = 1,column = 1, columnspan = 4)

button_clear = tk.Button(root, text = 'C', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_back = tk.Button(root, text = '<-', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_division = tk.Button(root, text = '/', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_multipication = tk.Button(root, text = 'X', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_clear.grid(row=2, column = 1, padx= 4, pady = 2 )
button_back.grid(row=2, column = 2, padx= 4, pady = 2 )
button_division.grid(row=2, column = 3, padx= 4, pady = 2 )
button_multipication.grid(row=2, column = 4, padx= 4, pady = 2 )

button_seven = tk.Button(root, text = '7', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_eight = tk.Button(root, text = '8', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_nine = tk.Button(root, text = '9', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_subtraction = tk.Button(root, text = '-', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_seven.grid(row =  3, column = 1, padx= 4, pady = 2 )
button_eight.grid(row = 3, column = 2, padx= 4, pady = 2 )
button_nine.grid(row = 3, column = 3, padx= 4, pady = 2 )
button_subtraction.grid(row = 3, column = 4, padx= 4, pady = 2 )

button_four = tk.Button(root, text = '4', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_five = tk.Button(root, text = '5', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_six = tk.Button(root, text = '6', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_add = tk.Button(root, text = '+', width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_four.grid(row = 4, column = 1, padx= 4, pady = 2 )
button_five.grid(row = 4, column = 2, padx= 4, pady = 2 )
button_six.grid(row = 4, column = 3, padx= 4, pady = 2 )
button_add.grid(row = 4, column = 4, padx= 4, pady = 2 )

button_one = tk.Button(root, text = '1', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_two = tk.Button(root, text = '2', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_three = tk.Button(root, text = '3', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_equal = tk.Button(root, text = '=', height = 3, width = 5, font = font_16, relief = tk.FLAT, bg = '#b1b2b2')
button_one.grid(row = 5, column = 1, padx= 4, pady = 2 )
button_two.grid(row = 5, column = 2, padx= 4, pady = 2 )
button_three.grid(row = 5, column = 3, padx= 4, pady = 2 )
button_equal.grid(row = 5, column = 4, padx= 4, pady = 2, rowspan = 2)

button_zero = tk.Button(root, text = '0', width = 12, font = font_16, relief = tk.FLAT, bg = '#eacda1')
# button_zero1 = tk.Button(root, text = '0', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_dot = tk.Button(root, text = '.', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
# button_equal = tk.Button(root, text = '=', width = 5, font = font_16, relief = tk.FLAT, bg = '#eacda1')
button_zero.grid(row = 6, column = 1, padx= 4, pady = 2, columnspan = 2)
# button_zero1.grid(row = 6, column = 2, padx= 4, pady = 2 )
button_dot.grid(row = 6, column = 3, padx= 4, pady = 2 )
# button_equal.grid(row = 6, column = 4, padx= 4, pady = 2 )

# 点击事件
def click_button(x):
    result_num.set(result_num.get() + str(x))

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

button_one.config(command = lambda :click_button(1))
button_two.config(command = lambda :click_button(2))
button_three.config(command = lambda :click_button(3))
button_four.config(command = lambda :click_button(4))
button_five.config(command = lambda :click_button(5))
button_six.config(command = lambda :click_button(6))
button_seven.config(command = lambda :click_button(7))
button_eight.config(command = lambda :click_button(8))
button_nine.config(command = lambda :click_button(9))
button_zero.config(command = lambda :click_button(0))

button_add.config(command = lambda : click_button('+'))
button_subtraction.config(command = lambda :click_button('-'))
button_multipication.config(command = lambda :click_button('*'))
button_division.config(command = lambda :click_button('/'))

button_equal.config(command = calculation)


root.mainloop()

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值