Я использую PySimpleGUI27
для создания простой программы с графическим интерфейсом. Эта программа принимает 3 файла в качестве входных данных, и когда пользователь нажимает кнопку Submit
, он вызывает функцию моего анализатора. Эта программа работает очень хорошо. Единственная проблема, с которой я столкнулся, заключается в том, что после нажатия кнопки «Отправить» я получаю Not Responding GUI for few seconds
. Сообщение MSG не отображается в заголовке окна следующим образом: A2L Parser(Not Responding)
После прочтения PySimpleGUI27
кулинарной книги я узнал, что мне придется window.Refresh()
, но я не могу понять, где именно я должен поместить window.Refresh()
в мой код. Ниже мой код:
import PySimpleGUI27 as sg
import parse
layout = [
[sg.Text('A2L File', size=(15, 1), auto_size_text=False, justification='right'),
sg.InputText('',key='_a2l_'), sg.FileBrowse(file_types=(("A2L File", "*.a2l"),))],
[sg.Text('Signals Lexicon', size=(15, 1), auto_size_text=False, justification='right'),
sg.InputText('',key='_sigLex_'), sg.FileBrowse(file_types=(("Excel File", "*.xlsx"),))],
[sg.Text('Parameters Lexicon', size=(15, 1), auto_size_text=False, justification='right'),
sg.InputText('',key='_parLex_'), sg.FileBrowse(file_types=(("Excel File", "*.xlsx"),))],
[sg.Submit(), sg.Cancel()],
[sg.Multiline(default_text='', size=(65, 10),key='_debug_')]
]
window = sg.Window('A2L Parser', default_element_size=(40, 1)).Layout(layout)
values_dict={}
while True:
button, values_dict = window.Read()
#if button=="Cancel" or not any(value == '' for value in values_dict.values()):
# break
if button=="Cancel" or button is None:
break
elif button=='Submit' and (not any(value == '' for value in values_dict.values())):
parse.parser(values_dict['_a2l_'], values_dict['_sigLex_'], values_dict['_parLex_'])
else:
sg.Popup("Please select files")
window.Element('_debug_').Update('1')
print values_dict
print button
window.Close()
Может ли кто-нибудь помочь мне с этой не отвечающей проблемой?