用Python(推荐导入PySimpleGUI库)写一个面积计算器,首先在主界面选择需要计算矩形、三角形、圆形哪种图形的面积,然后根据选择跳转其对应的界面输入需要的数据并跳转结果界面,得到结果后跳转到主界面继续使用计算器并且系统不会崩溃
时间: 2023-12-03 20:47:09 浏览: 74
Python通过GUI图形库wxPython连接oracle数据库实现系统登录、跳转主界面功能(源代码下载)
好的,我来给您写一个面积计算器。
首先需要安装 PySimpleGUI 库,可以使用以下命令进行安装:
```python
pip install PySimpleGUI
```
然后我们就可以开始编写代码了。以下是完整的代码:
```python
import PySimpleGUI as sg
def rectangle_area(length, width):
return length * width
def triangle_area(base, height):
return 0.5 * base * height
def circle_area(radius):
return 3.14 * radius * radius
def main_window():
layout = [
[sg.Text("请选择需要计算的图形")],
[sg.Button("矩形"), sg.Button("三角形"), sg.Button("圆形"), sg.Button("退出")],
]
return sg.Window("面积计算器", layout)
def rectangle_window():
layout = [
[sg.Text("请输入矩形的长度和宽度")],
[sg.Text("长度:"), sg.InputText(key="length")],
[sg.Text("宽度:"), sg.InputText(key="width")],
[sg.Button("计算"), sg.Button("返回")],
]
return sg.Window("矩形面积计算器", layout)
def triangle_window():
layout = [
[sg.Text("请输入三角形的底边和高度")],
[sg.Text("底边:"), sg.InputText(key="base")],
[sg.Text("高度:"), sg.InputText(key="height")],
[sg.Button("计算"), sg.Button("返回")],
]
return sg.Window("三角形面积计算器", layout)
def circle_window():
layout = [
[sg.Text("请输入圆形的半径")],
[sg.Text("半径:"), sg.InputText(key="radius")],
[sg.Button("计算"), sg.Button("返回")],
]
return sg.Window("圆形面积计算器", layout)
def result_window(result):
layout = [
[sg.Text("计算结果:{}".format(result))],
[sg.Button("返回主界面")],
]
return sg.Window("结果", layout)
def main():
main_win = main_window()
while True:
event, values = main_win.read()
if event in (sg.WINDOW_CLOSED, "退出"):
break
elif event == "矩形":
rectangle_win = rectangle_window()
while True:
event2, values2 = rectangle_win.read()
if event2 in (sg.WINDOW_CLOSED, "返回"):
rectangle_win.close()
break
elif event2 == "计算":
try:
length = float(values2["length"])
width = float(values2["width"])
result = rectangle_area(length, width)
rectangle_win.hide()
result_win = result_window(result)
while True:
event3, values3 = result_win.read()
if event3 in (sg.WINDOW_CLOSED, "返回主界面"):
result_win.close()
main_win.un_hide()
break
except ValueError:
sg.popup("请输入正确的数值")
elif event == "三角形":
triangle_win = triangle_window()
while True:
event2, values2 = triangle_win.read()
if event2 in (sg.WINDOW_CLOSED, "返回"):
triangle_win.close()
break
elif event2 == "计算":
try:
base = float(values2["base"])
height = float(values2["height"])
result = triangle_area(base, height)
triangle_win.hide()
result_win = result_window(result)
while True:
event3, values3 = result_win.read()
if event3 in (sg.WINDOW_CLOSED, "返回主界面"):
result_win.close()
main_win.un_hide()
break
except ValueError:
sg.popup("请输入正确的数值")
elif event == "圆形":
circle_win = circle_window()
while True:
event2, values2 = circle_win.read()
if event2 in (sg.WINDOW_CLOSED, "返回"):
circle_win.close()
break
elif event2 == "计算":
try:
radius = float(values2["radius"])
result = circle_area(radius)
circle_win.hide()
result_win = result_window(result)
while True:
event3, values3 = result_win.read()
if event3 in (sg.WINDOW_CLOSED, "返回主界面"):
result_win.close()
main_win.un_hide()
break
except ValueError:
sg.popup("请输入正确的数值")
main_win.close()
if __name__ == "__main__":
main()
```
在代码中,我们定义了几个函数来计算不同图形的面积:`rectangle_area` 计算矩形面积,`triangle_area` 计算三角形面积,以及 `circle_area` 计算圆形面积。这些函数都接受相应图形的参数,并返回对应的面积。
然后我们定义了几个窗口函数:`main_window` 用于显示主界面,让用户选择需要计算哪种图形的面积;`rectangle_window`、`triangle_window` 和 `circle_window` 分别用于显示矩形、三角形和圆形的面积计算器界面;而 `result_window` 则用于显示计算结果。
在 `main` 函数中,我们首先创建了主界面窗口,并进入一个循环,等待用户点击按钮。如果用户选择了某种图形,我们就会创建相应的图形计算器窗口,并再次进入循环,等待用户输入数据并计算面积。如果用户输入的数据不合法,我们会弹出一个提示框提示用户重新输入。如果计算成功,我们会隐藏当前窗口并显示计算结果窗口,等待用户点击“返回主界面”按钮。如果用户点击了“返回主界面”按钮,我们会关闭当前窗口并重新显示主界面窗口。
最后,我们在 `if __name__ == "__main__":` 语句中调用 `main` 函数来启动整个程序。
阅读全文