使用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程序就完成了。用户可以通过界面输入数字和运算符进行计算,结果会显示在界面上。如果有错误发生,程序会弹出一个错误对话框提示用户。
