python写一个计算器 tkinter

在这里插入图片描述

安装需求

pip  install -U tkinter 

代码正文

# -*- coding: utf-8 -*-
# ㊎ Author : XMZ
# ㊍ Time : 2023/3/22 15:10
# ㊌ File : Calculator.py
# ㊋ IDE :  PyCharm
# ㊏ 

import tkinter as tk
from tkinter import ttk


class Calculator:

    def __init__(self, master):
        self.master = master
        self.master.title("计算器")
        self.master.geometry("300x400")
        self.master.configure(bg='#263D42')

        style = ttk.Style()
        style.configure('TButton', font=('Arial', 18), bg='#263D42', fg='#FFFFFF', relief='flat', padding=5)
        style.map('TButton', background=[('active', '#4B8E8D')])

        self.result_var = tk.StringVar()
        self.result_entry = tk.Entry(self.master, textvariable=self.result_var, state='readonly', font=('Arial', 24),
                                     justify='right', bg='#263D42', fg='#FF0000', relief='flat', bd=10)
        self.result_entry.grid(row=0, column=0, columnspan=4)

        self.create_buttons()

    def create_buttons(self):
        btn_list = [
            ('7', 1, 0), ('8', 1, 1), ('9', 1, 2), ('/', 1, 3),
            ('4', 2, 0), ('5', 2, 1), ('6', 2, 2), ('*', 2, 3),
            ('1', 3, 0), ('2', 3, 1), ('3', 3, 2), ('-', 3, 3),
            ('0', 4, 0), ('.', 4, 1), ('+', 4, 2), ('=', 4, 3),
            ('小', 5, 0), ('毛', 5, 1), ('贼', 5, 2), ('C', 5, 3),
        ]

        for (text, row, column) in btn_list:
            btn = ttk.Button(self.master, text=text, command=lambda t=text: self.on_button_click(t))
            btn.grid(row=row, column=column, sticky='nsew', padx=5, pady=5)

        for i in range(5):
            self.master.grid_columnconfigure(i, weight=1)
            self.master.grid_rowconfigure(i, weight=1)

    def on_button_click(self, button_text):
        if button_text == '=':
            try:
                self.result_var.set(eval(self.result_var.get()))
            except:
                self.result_var.set("错误")
        elif button_text == 'C':
            self.result_var.set("")
        else:
            self.result_var.set(self.result_var.get() + button_text)


if __name__ == '__main__':
    root = tk.Tk()
    calculator = Calculator(root)
    root.mainloop()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值