ChatGPT:编写一个带UI界面的计算器

该代码示例展示了如何用Python的tkinter库创建一个基本的图形用户界面(GUI)计算器。类Calculator中定义了初始化函数,用于设置窗口标题和变量,以及创建按钮。create_button方法用于动态生成数字和运算符按钮,button_click方法处理按钮点击事件,实现计算功能。程序会根据用户输入进行加减乘除运算,并能清除输入和显示错误信息。
摘要由CSDN通过智能技术生成

代码:

import tkinter as tk

class Calculator:
    def __init__(self, master):
        self.master = master
        master.title("Calculator")

        self.total = tk.StringVar()
        self.entered_number = tk.StringVar()
        self.entered_number.set('0')
        self.total.set('0')

        self.entry = tk.Entry(master, textvariable=self.entered_number)
        self.entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10, ipadx=10, ipady=10)

        self.create_button("1", 1, 1)
        self.create_button("2", 1, 2)
        self.create_button("3", 1, 3)
        self.create_button("4", 2, 1)
        self.create_button("5", 2, 2)
        self.create_button("6", 2, 3)
        self.create_button("7", 3, 1)
        self.create_button("8", 3, 2)
        self.create_button("9", 3, 3)
        self.create_button("0", 4, 2)

        self.create_button("+", 1, 4)
        self.create_button("-", 2, 4)
        self.create_button("*", 3, 4)
        self.create_button("/", 4, 4)
        self.create_button("C", 4, 1)
        self.create_button("=", 4, 3)

    def create_button(self, text, row, column):
        button = tk.Button(self.master, text=text, command=lambda: self.button_click(text))
        button.grid(row=row, column=column, padx=10, pady=10)

    def button_click(self, text):
        if text == '=':
            try:
                self.total.set(eval(self.entry.get()))
                self.entered_number.set(self.total.get())
            except:
                self.total.set("Error")
                self.entered_number.set("Error")
        elif text == 'C':
            self.entered_number.set('0')
            self.total.set('0')
        else:
            if self.entered_number.get() == '0':
                self.entered_number.set('')
            self.entered_number.set(self.entered_number.get() + text)

root = tk.Tk()
my_gui = Calculator(root)
root.mainloop()

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值