栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python使用GUI写一个建议的计算器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号