美文网首页pyPDF2
使用PySimpleGUI编写GUI工具

使用PySimpleGUI编写GUI工具

作者: 张小Di | 来源:发表于2020-05-24 22:57 被阅读0次

    使用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.pytriangle函数,然后把结果展示在界面上

    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()
    

    改进点(有空再完善吧):

    1. 程序的容错性:如果输入的不是整数,程序是否会异常;三边未输入时,程序是否发生异常
    2. 功能的完善性:三角形可分为等腰三角形、等边三角形、直角三角形

    相关文章

      网友评论

        本文标题:使用PySimpleGUI编写GUI工具

        本文链接:https://www.haomeiwen.com/subject/xkrsahtx.html