zoukankan      html  css  js  c++  java
  • PySimpleGUI 踩坑记

    最近在写一些处理芯片数据的代码,想给小伙伴们用,就想到写个GUI的页面,正好有人推荐使用PySimpleGUI, 首次使用就遇到了坑:

    # -*- coding: utf-8 -*-
    """
    Created on Sat Jul 17 18:06:18 2021
    处理系谱文件
    @author: 高雪峰  Alex GAO
    """
    import PySimpleGUI as sg
    
    sg.theme("BluePurple")
    layout = [[sg.Text('请输入F90整理的系谱文件名称:'),sg.Text(size=(20,1),key = ('-OUTPUT-'))],      
              [sg.Input(key = '-IN-')],      
              [sg.Button('Read'), sg.Exit()]]   
    
    window = sg.Window("处理系谱文件", layout)
    while True:
        event, values = window.Read()
        print(event, values)
        if event in (None, "Exit"):
            break
        if event == "Read":
            try:
                #f90Name = values["-IN-"]
                #print(f90Name)
                window("-OUTPUT-").update(values("-IN-"))
            except  ValueError as e:
                print(e)
    
    window.close()

    之前没有加try,运行的时候直接报错  invalid literal for int() with base 10: '-OUTPUT-' 加上try,打印出来,找原因,就加上赋值语句,这回报了一个我好像能看懂的语句: 'dict' object is not callable,分析一下打印的内容“Read {'-IN-': 'ASD'}”  仔细想了一下,原来是字典值的问题,对照原文发现,问题出现在“ window("-OUTPUT-").update(values("-IN-")) ”这句话上 ,尝试着修改为下边这段话,就跑通了

    # -*- coding: utf-8 -*-
    """
    Created on Sat Jul 17 18:06:18 2021
    处理系谱文件
    @author: 高雪峰  Alex GAO
    """
    
    import PySimpleGUI as sg
    
    sg.theme("BluePurple")
    layout = [[sg.Text('请输入F90整理的系谱文件名称:'),sg.Text(size=(20,1),key = ('-OUTPUT-'))],      
              [sg.Input(key = '-IN-')],      
              [sg.Button('Read'), sg.Exit()]]   
    
    window = sg.Window("处理系谱文件", layout)
    while True:
        event, values = window.Read()
        print(event, values)
        if event in (None, "Exit"):
            break
        if event == "Read":
            try:
                f90Name = values["-IN-"] #这里是字典值的问题
                print(f90Name)
                window["-OUTPUT-"].update(values["-IN-"])  #这里是字典值的问题
            except  ValueError as e:
                print(e)
    
    window.close()



    image

    录入数据

    image

    查看后台结果

    image

    得到的f90Name也是正确的。

    分析起来主要是对字典操作的不熟悉造成的错误

    人在中年,一事无成,瞎学
  • 相关阅读:
    关于HTML5画布canvas的功能
    HTML5新标签介绍
    为HTML5添加新样式标签
    iOS开发相关图书推荐
    Android相关图书推荐
    C语言相关图书推荐
    C#相关图书推荐
    C++相关图书推荐
    JavaScript相关图书推荐
    Java相关书籍推荐
  • 原文地址:https://www.cnblogs.com/jilingxf/p/15054173.html
Copyright © 2011-2022 走看看