用tkinter库写计算任意三角形面积2
为了使用表格布局(在Tkinter中通常通过grid
方法实现,尽管它并不是严格意义上的HTML表格布局,但可以达到类似的效果)并添加一个“清空”按钮,我们可以对代码进行如下修改。这里,我将结果显示在一个多行的Text
控件中(命名为txt3
),以便将来可以扩展显示更多信息(尽管在这个例子中我们只显示一行)。同时,添加了一个“清空”按钮来清除所有文本框的内容。
以下是修改后的代码:
import tkinter as tk
from tkinter import messagebox
def calculate_area():
try:
a = float(txt1.get()) # 底
h = float(txt2.get()) # 高
area = 0.5 * a * h
txt3.delete(1.0, tk.END) # 清空Text控件的内容
txt3.insert(tk.END, f"面积: {area:.2f}\n") # 插入计算结果
except ValueError:
messagebox.showerror("输入错误", "请输入有效的数字")
def clear_fields():
txt1.delete(0, tk.END) # 清空底文本框
txt2.delete(0, tk.END) # 清空高文本框
txt3.delete(1.0, tk.END) # 清空结果Text控件的内容
# 创建主窗口
root = tk.Tk()
root.title("三角形面积计算器")
# 创建并放置标签和输入框
label1 = tk.Label(root, text="底:")
label1.grid(row=0, column=0, padx=10, pady=10, sticky=tk.W)
txt1 = tk.Entry(root)
txt1.grid(row=0, column=1, padx=10, pady=10)
label2 = tk.Label(root, text="高:")
label2.grid(row=1, column=0, padx=10, pady=10, sticky=tk.W)
txt2 = tk.Entry(root)
txt2.grid(row=1, column=1, padx=10, pady=10)
# 创建并放置结果Text控件(虽然这里只用一行,但Text控件更灵活)
txt3 = tk.Text(root, height=5, width=30) # 设置高度和宽度以适应内容
txt3.grid(row=3, column=0, columnspan=2, pady=10)
# 创建计算按钮
btn_calculate = tk.Button(root, text="计算", command=calculate_area)
btn_calculate.grid(row=2, column=0, columnspan=2, pady=10)
# 创建清空按钮
btn_clear = tk.Button(root, text="清空", command=clear_fields)
btn_clear.grid(row=4, column=0, columnspan=2, pady=10)
# 运行主循环
root.mainloop()
程序说明:
- 导入库:与之前的代码相同。
- 定义计算面积的函数:
calculate_area
函数现在会清空text3
控件的内容,然后插入计算结果。 - 定义清空字段的函数:
clear_fields
函数用于清空所有文本框和结果Text
控件的内容。 - 创建主窗口:与之前的代码相同。
- 创建并放置标签和输入框:使用
Label
和Entry
控件,并通过grid
方法设置位置。sticky=tk.W
参数使标签左对齐。 - 创建并放置结果
Text
控件:使用Text
控件来显示结果,虽然在这个例子中只显示一行,但Text
控件提供了更大的灵活性。 - 创建计算按钮:使用
Button
控件创建了一个计算按钮,并将其command
属性设置为calculate_area
函数。 - 创建清空按钮:使用
Button
控件创建了一个清空按钮,并将其command
属性设置为clear_fields
函数。 - 运行主循环:与之前的代码相同。
现在,运行这个程序后,你会看到一个使用grid
布局组织的窗口,用户可以在输入框中输入底和高的值,然后点击“计算”按钮查看三角形的面积。点击“清空”按钮可以清除所有文本框和结果区域的内容。