Я пытаюсь использовать вложенные события.
Когда я просматриваю файл, одно имя файла, удаляемое из полного пути, вызывает событие, которое переводит имя файла в текстовое поле, для которого enable_events установлено значение true, что вызывает другое событие для вызова функции и получения подробностей в формате pdf. ,
Если я включу две закомментированные строки, вы увидите, что функция работает и передает возвращаемое значение, но я пытаюсь разделить эти два события, так как функция для получения подробной информации о PDF занимает некоторое время.
Итак, заказ:
__ pdfpath __ получает полный путь к определенному просматриваемому файлу, который запускает событие, которое переводит имя файла в __ bookfilename __ , которое должно вызвать другое событие, которое вызовет функцию, которая отправит свой ответ __pdfdetails __
import PySimpleGUI as sg
import os
def get_pdf_details(pdfname):
return pdfname + ' was processed'
layout = [
[sg.InputText('',key='_pdfpath_',enable_events=True),sg.FileBrowse(key='_filepath_')],
[sg.Text('',key='_bookfilename_',enable_events=True,size=(40, 1))],
[sg.Text('',key='_pdfdetails_', size=(40, 1) )],
]
window = sg.Window('', layout)
while True:
event, value = window.Read()
if event == '_pdfpath_':
filename = os.path.basename(value['_pdfpath_'])
window.Element('_bookfilename_').Update(filename)
#response = get_pdf_details(filename)
#window.Element('_pdfdetails_').Update(response)
if event == '_bookfilename_':
response = get_pdfdetails(value['_bookfilename_'])
window.Element('_pdfdetails_').Update(response)
Итак, вопрос в том, как я могу вызвать второе событие?
Я попытался создать второе окно. Read () , чтобы создать второй цикл, подобный этому:
event2, value2 = window.Read()
но не сработало.
Есть идеи?
Спасибо