用Python(推荐导入PySimpleGUI库)写一个面积计算器,首先在主界面选择需要计算矩形、三角形、圆形哪种图形的面积,然后根据选择跳转其对应的界面输入需要的数据并跳转结果界面,得到结果后可以选择返回主界面继续使用计算器并且系统不会崩溃
时间: 2023-12-03 09:47:06 浏览: 40
好的,下面是一个Python的面积计算器,使用了PySimpleGUI库来构建界面:
```python
import math
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 math.pi * radius ** 2
sg.theme('LightBlue2')
layout_main = [[sg.Text('请选择需要计算的图形:')],
[sg.Radio('矩形', 'RADIO1', default=True, key='-RECT-'),
sg.Radio('三角形', 'RADIO1', key='-TRI-'),
sg.Radio('圆形', 'RADIO1', key='-CIR-')],
[sg.Button('确定'), sg.Button('退出')]]
window_main = sg.Window('面积计算器', layout_main)
while True:
event_main, values_main = window_main.read()
if event_main == sg.WIN_CLOSED or event_main == '退出':
break
shape = ''
if values_main['-RECT-']:
shape = '矩形'
elif values_main['-TRI-']:
shape = '三角形'
elif values_main['-CIR-']:
shape = '圆形'
window_main.hide()
layout_input = []
input_keys = []
if shape == '矩形':
layout_input = [[sg.Text('请输入矩形的长和宽:')],
[sg.Text('长:'), sg.Input(key='-LENGTH-')],
[sg.Text('宽:'), sg.Input(key='-WIDTH-')],
[sg.Button('计算'), sg.Button('返回主界面')]]
input_keys = ['-LENGTH-', '-WIDTH-']
elif shape == '三角形':
layout_input = [[sg.Text('请输入三角形的底和高:')],
[sg.Text('底:'), sg.Input(key='-BASE-')],
[sg.Text('高:'), sg.Input(key='-HEIGHT-')],
[sg.Button('计算'), sg.Button('返回主界面')]]
input_keys = ['-BASE-', '-HEIGHT-']
elif shape == '圆形':
layout_input = [[sg.Text('请输入圆的半径:')],
[sg.Text('半径:'), sg.Input(key='-RADIUS-')],
[sg.Button('计算'), sg.Button('返回主界面')]]
input_keys = ['-RADIUS-']
window_input = sg.Window('计算' + shape + '面积', layout_input)
while True:
event_input, values_input = window_input.read()
if event_input == sg.WIN_CLOSED or event_input == '返回主界面':
break
inputs = [float(values_input[key]) for key in input_keys]
result = 0
if shape == '矩形':
result = rectangle_area(*inputs)
elif shape == '三角形':
result = triangle_area(*inputs)
elif shape == '圆形':
result = circle_area(*inputs)
sg.popup('该' + shape + '的面积为:' + str(result))
window_input.close()
window_main.close()
```
运行后会弹出一个主界面,选择需要计算的图形后点击“确定”进入对应的输入界面,输入数据后点击“计算”得到计算结果,之后可以选择返回主界面或继续计算其他图形的面积。
阅读全文