使用PySimpleGUI编写一个简单的GUI工具吧~
输入三个整数,判断其是否可构成一个三角形。
我们知道,任意两边之和大于第3边,就是一个三角形
首先,写一个函数判断其是否可构成三角形,如下:
def triangle(x,y,z):
if x>0 and y>0 and z>0:
if x+y>z and x+z>y and y+z>x:
result='是三角形'
else:
result='X,Y,Z构不成三角形'
else:
result="请输入3个正整数"
return result
接下来,需要借助PySimpleGUI实现界面展示了
首先,先安装PySimpleGUI
pip install PySimpleGUI
接下来,导入PySimpleGUI并实现布局,先构造一个二维的列表,二维列表中的一行可包含多个小部件
import PySimpleGUI as sg
layout=[
[sg.Text('X:'),sg.InputText(size=(15,))],
[sg.Text('Y:'),sg.InputText(size=(15,))],
[sg.Text('Z:'),sg.InputText(size=(15,))],
[sg.Button('结果:',key='submit')],
[sg.Text('',key='三角形判断',size=(20,2))],
[sg.Quit('exit',key='q')]]
把构造的布局加入窗口中
window=sg.Window('三角形判断',layout,font='微软雅黑')
接下来,我们再添加事件处理
event,value=window.Read()
window.Read() 方法,用于读取页面上的事件和输入的数据。其返回值为('事件', {0: '输入控件1接收的值', 1: '输入控件2接受的值'})
。
当我们点击“结果:”时,会收到submit事件,此时需要调用triangle.py
中triangle
函数,然后把结果展示在界面上
if event=='submit':
results=triangle.triangle(int(value[0]),int(value[1]),int(value[2]))
if results:
window.Element('三角形判断').Update(results,text_color='black')
else:
window.Element('三角形判断').Update('Error!',text_color='red')
elif event=='q':
可以运行一下
triangle.png
源代码,如下:
triangle.py
if x>0 and y>0 and z>0:
if x+y>z and x+z>y and y+z>x:
result='是三角形'
else:
result='X,Y,Z构不成三角形'
else:
result="请输入3个正整数"
return result
triangle_gui.py
import PySimpleGUI as sg
import triangle
# Create some widgets
layout=[
[sg.Text('X:'),sg.InputText(size=(15,))],
[sg.Text('Y:'),sg.InputText(size=(15,))],
[sg.Text('Z:'),sg.InputText(size=(15,))],
[sg.Button('结果:',key='submit')],
[sg.Text('',key='三角形判断',size=(20,2))],
[sg.Quit('exit',key='q')]]
# Create the Window
window=sg.Window('三角形判断',layout,font='微软雅黑')
# Create the event loop
while True:
event,value=window.Read()
if event=='submit':
results=triangle.triangle(int(value[0]),int(value[1]),int(value[2]))
if results:
window.Element('三角形判断').Update(results,text_color='black')
else:
window.Element('三角形判断').Update('Error!',text_color='red')
elif event=='q':
break
window.Close()
改进点(有空再完善吧):
- 程序的容错性:如果输入的不是整数,程序是否会异常;三边未输入时,程序是否发生异常
- 功能的完善性:三角形可分为等腰三角形、等边三角形、直角三角形
网友评论