用tkinter库写计算任意三角形面积1_2
以下是修改后的代码,包含了清空按钮,并且实现了在第一个文本框输入数字后按回车焦点自动移到第二个文本框,以及在第二个文本框中回车时触发计算面积按钮的功能:
import tkinter as tk
from tkinter import messagebox
# 创建主窗口
root = tk.Tk()
root.title("三角形面积计算器")
root.geometry("350x200")
# 标签和输入框变量
label1 = tk.Label(root, text="底:")
label1.grid(row=0, column=0, padx=10, pady=10)
txt1 = tk.Entry(root)
txt1.grid(row=0, column=1, padx=10, pady=10)
txt1.bind("<Return>", lambda event: txt2.focus()) # 在txt1中按回车,焦点移到txt2
label2 = tk.Label(root, text="高:")
label2.grid(row=1, column=0, padx=10, pady=10)
txt2 = tk.Entry(root)
txt2.grid(row=1, column=1, padx=10, pady=10)
txt2.bind("<Return>", lambda event: calculate_area()) # 在txt2中按回车,触发计算面积
# 结果标签
label_result = tk.Label(root, text="")
label_result.grid(row=3, column=0, columnspan=2, pady=20)
# 清空按钮及其回调函数
def clear_entries():
txt1.delete(0, tk.END)
txt2.delete(0, tk.END)
label_result.config(text="")
btn_clear = tk.Button(root, text="清空", command=clear_entries)
btn_clear.grid(row=2, column=0, pady=10)
# 计算按钮及其回调函数
def calculate_area():
try:
base = float(txt1.get())
height = float(txt2.get())
area = 0.5 * base * height
label_result.config(text=f"三角形的面积是: {area:.2f}")
except ValueError:
messagebox.showerror("输入错误", "请输入有效的数字")
btn_js = tk.Button(root, text="计算面积", command=calculate_area)
btn_js.grid(row=2, column=1, pady=10)
# 运行主循环
root.mainloop()
在这个版本中,我添加了btn_clear清空按钮,并将其与btn_js计算面积按钮并排显示在第二行。同时,我使用了bind方法为txt1和txt2文本框绑定了回车键事件。当在txt1中按下回车键时,焦点会自动移动到txt2;当在txt2中按下回车键时,会触发calculate_area函数来计算面积。
现在,用户可以更快速、更方便地使用这个三角形面积计算器了。

浙公网安备 33010602011771号