欢迎访问宙启技术站
智能推送

使用Python编写的简单的GUI程序案例:计算器

发布时间:2023-12-04 19:30:25

这是一个使用Python编写的简单的GUI程序案例,实现了一个计算器的功能。用户可以通过界面上的按钮输入数字和运算符进行计算,结果会显示在界面上。

首先,我们需要导入必要的模块和库:

from tkinter import *
from tkinter import messagebox

然后,我们创建一个名为Calculator的类,该类继承自Tkinter的Tk类:

class Calculator(Tk):
    def __init__(self):
        super().__init__()
        self.title("Calculator")
        self.geometry("300x400")
        self.resizable(False, False)

        self.num1 = StringVar()
        self.num2 = StringVar()
        self.operator = StringVar()
        self.result = StringVar()

        self.create_widgets()

在类的构造函数中,我们初始化了一些变量,并调用了一个名为create_widgets的函数,该函数用于创建界面上的组件。

    def create_widgets(self):
        num1_label = Label(self, text="Number 1:")
        num1_label.pack()

        num1_entry = Entry(self, textvariable=self.num1)
        num1_entry.pack()

        num2_label = Label(self, text="Number 2:")
        num2_label.pack()

        num2_entry = Entry(self, textvariable=self.num2)
        num2_entry.pack()

        operator_label = Label(self, text="Operator:")
        operator_label.pack()

        operator_entry = Entry(self, textvariable=self.operator)
        operator_entry.pack()

        result_label = Label(self, text="Result:")
        result_label.pack()

        result_entry = Entry(self, textvariable=self.result, state="readonly")
        result_entry.pack()

        calculate_button = Button(self, text="Calculate", command=self.calculate)
        calculate_button.pack()

在create_widgets函数中,我们创建了一些Label和Entry组件,用于显示和输入数字、运算符和结果。同时,我们还创建了一个Calculate按钮,该按钮的command属性绑定了一个calculate函数。

    def calculate(self):
        num1 = self.num1.get()
        num2 = self.num2.get()
        operator = self.operator.get()

        try:
            result = eval(num1 + operator + num2)
            self.result.set(result)
        except Exception as e:
            messagebox.showerror("Error", str(e))

在calculate函数中,我们从界面上获取输入的数字、运算符,并使用eval函数计算结果。如果计算成功,将结果设置到结果的Entry组件中;如果发生异常,则弹出一个错误对话框。

最后,我们在程序的入口处创建了Calculator的实例,并启动主循环:

if __name__ == "__main__":
    calculator = Calculator()
    calculator.mainloop()

这样,一个简单的计算器GUI程序就完成了。用户可以通过界面输入数字和运算符进行计算,结果会显示在界面上。如果有错误发生,程序会弹出一个错误对话框提示用户。