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也是正確的。

分析起來主要是對字典操作的不熟悉造成的錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM