📅  最后修改于: 2023-12-03 15:34:18.209000             🧑  作者: Mango
在本文中,我们将学习如何使用 Python 以及 Tkinter 库创建一个简单的计算器。
在继续阅读本文之前,请确保您已经安装好了 Python 3.x 的版本,并且您已经安装了 Tkinter 库。
如果您没有安装 Tkinter 库,请使用以下命令安装:
pip install tkinter
首先,我们需要导入 Tkinter 库,并且创建一个 GUI 窗口。代码片段如下:
import tkinter as tk
# 创建 GUI 窗口
root = tk.Tk()
root.title("简单计算器")
上述代码创建了一个名为 "简单计算器" 的 GUI 窗口。
接下来,我们将添加一些按钮和一些文本框来创建我们的计算器。
# 显示计算结果的文本框
result_display = tk.Entry(root, width=20, font=("Arial", 16))
# 添加数字按钮
numbers = "7894561230."
for i in range(len(numbers)):
button = tk.Button(root, text=numbers[i], width=5, height=2, font=("Arial", 16))
button.grid(row=(i // 3) + 1, column=(i % 3), padx=5, pady=5)
# 添加运算符按钮
operators = "+-*/"
for i in range(len(operators)):
button = tk.Button(root, text=operators[i], width=5, height=2, font=("Arial", 16))
button.grid(row=i + 1, column=3, padx=5, pady=5)
# 添加其他按钮
clear_button = tk.Button(root, text="C", width=5, height=2, font=("Arial", 16))
clear_button.grid(row=len(numbers) // 3 + 1, column=0, padx=5, pady=5)
equal_button = tk.Button(root, text="=", width=5, height=2, font=("Arial", 16))
equal_button.grid(row=len(numbers) // 3 + 1, column=1, padx=5, pady=5)
root.mainloop()
上述代码添加了一个文本框用于显示计算结果,并且创建了数字、运算符、清空和等于按钮。我们使用了 grid() 方法将它们放置在我们的 GUI 窗口中。
现在我们已经创建了所有必要的按钮和文本框,接下来我们需要实现点击这些按钮时触发的功能,以完成计算器的操作。
首先,我们需要为数字和运算符按钮的点击事件添加处理函数。我们将定义一个名为 button_clicked() 的函数并将其绑定到所有数字和运算符按钮。当用户点击按钮时,该函数将从按钮的 text 属性获取被点击的数字或运算符,并将其追加到显示结果的文本框中。代码如下:
def button_clicked(event):
# 获取被点击的按钮
button = event.widget
# 获取按钮的文本
text = button["text"]
# 将文本追加到结果文本框中
result_display.insert(tk.END, text)
# 将 button_clicked 函数绑定到数字和运算符按钮上
for button in (numbers + operators):
button = root.nametowidget(button)
button.bind("<Button-1>", button_clicked)
接下来,我们需要为清空按钮和等于按钮添加处理函数。 click_clear() 函数将清空文本框中的内容, click_equal() 函数将计算文本框中的表达式并将结果显示在文本框中。代码如下:
def click_clear():
# 清空文本框
result_display.delete(0, tk.END)
def click_equal():
# 获取文本框中的表达式
expression = result_display.get()
try:
# 计算表达式
result = eval(expression)
# 清空文本框
result_display.delete(0, tk.END)
# 将结果显示在文本框中
result_display.insert(tk.END, result)
except:
# 如果表达式无效,则清空文本框
result_display.delete(0, tk.END)
# 将 click_clear 和 click_equal 函数绑定到清除和等于按钮上
clear_button.bind("<Button-1>", lambda event: click_clear())
equal_button.bind("<Button-1>", lambda event: click_equal())
最后,我们需要将所有 GUI 元素放置在我们的窗口中,并运行我们的计算器。代码如下:
# 将 GUI 元素放置到窗口中
result_display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 运行窗口
root.mainloop()
现在您已经完成了一个简单的计算器!运行代码,并在文本框中输入您的数学表达式,然后单击等于按钮即可获得结果。
下面是完整的计算器代码,请复制并粘贴到您的 Python 环境中进行测试。
import tkinter as tk
# 创建 GUI 窗口
root = tk.Tk()
root.title("简单计算器")
# 显示计算结果的文本框
result_display = tk.Entry(root, width=20, font=("Arial", 16))
# 添加数字按钮
numbers = "7894561230."
for i in range(len(numbers)):
button = tk.Button(root, text=numbers[i], width=5, height=2, font=("Arial", 16))
button.grid(row=(i // 3) + 1, column=(i % 3), padx=5, pady=5)
# 添加运算符按钮
operators = "+-*/"
for i in range(len(operators)):
button = tk.Button(root, text=operators[i], width=5, height=2, font=("Arial", 16))
button.grid(row=i + 1, column=3, padx=5, pady=5)
# 添加其他按钮
clear_button = tk.Button(root, text="C", width=5, height=2, font=("Arial", 16))
clear_button.grid(row=len(numbers) // 3 + 1, column=0, padx=5, pady=5)
equal_button = tk.Button(root, text="=", width=5, height=2, font=("Arial", 16))
equal_button.grid(row=len(numbers) // 3 + 1, column=1, padx=5, pady=5)
# 定义处理函数
def button_clicked(event):
# 获取被点击的按钮
button = event.widget
# 获取按钮的文本
text = button["text"]
# 将文本追加到结果文本框中
result_display.insert(tk.END, text)
def click_clear():
# 清空文本框
result_display.delete(0, tk.END)
def click_equal():
# 获取文本框中的表达式
expression = result_display.get()
try:
# 计算表达式
result = eval(expression)
# 清空文本框
result_display.delete(0, tk.END)
# 将结果显示在文本框中
result_display.insert(tk.END, result)
except:
# 如果表达式无效,则清空文本框
result_display.delete(0, tk.END)
# 将处理函数绑定到按钮上
for button in (numbers + operators):
button = root.nametowidget(button)
button.bind("<Button-1>", button_clicked)
clear_button.bind("<Button-1>", lambda event: click_clear())
equal_button.bind("<Button-1>", lambda event: click_equal())
# 将 GUI 元素放置到窗口中
result_display.grid(row=0, column=0, columnspan=4, padx=5, pady=5)
# 运行窗口
root.mainloop()
在本文中,我们学习了如何使用 Python 和 Tkinter 库创建一个简单的计算器。我们使用了 Tkinter 的 Entry
、Button
和 grid
等组件实现了一个带有数字、运算符和清空按钮的 GUI 界面,并通过添加点击事件处理程序实现了计算器的基本功能。现在您可以在 Python 中设计和创建自己的 GUI 应用程序!