#実現したいこと
PySimpleGUIを使用し、ファイルを二つ選択し、「読み込み開始」ボタンを押すとファイルの読み込みを開始するGUIを作成しています。
それぞれのファイルが未選択、またはファイル形式外(テキストファイルのみ選択可能な仕様にしています)の場合、エラーメッセージを表示したいです。
ただ、エラーが一つの場合は一つのメッセージ・複数エラーがある場合(1つ目未選択・2つ目形式外など)は組み合わせて表示したいのですが、複数ある際にも一つしかメッセージを表示できず、いろいろ試しているのですが、うまくいかないのでアドバイスをいただきたいです。
Python
1#filesample.py(GUI画面) 2import PySimpleGUI as sg 3import file_function as rf 4from file_select import FileSelect 5sg.theme('Dark Brown') 6layout = [ 7 [sg.Text('1つ目のファイルのを選択してください'),sg.InputText(key='FILE1', size=(45,1)), sg.FileBrowse('参照', target='FILE1')], 8 [sg.Text('2つ目のファイルのを選択してください'),sg.InputText(key='FILE2', size=(45,1)), sg.FileBrowse('参照', target='FILE2')], 9 [sg.Button('読み込み開始',key=FileSelect.START)], 10 [sg.CloseButton('閉じる')] 11] 12window = sg.Window('ファイル選択サンプル', layout) 13while True: 14 event, values = window.read() 15 if event == sg.WIN_CLOSED: 16 break 17 code, message = rf.file_func(event,values['FILE1'], values['FILE2']) 18 if code == '0': 19 sg.popup_ok(message, title='選択完了') 20 elif code == '1': 21 sg.popup_error(message, title='選択エラー') 22window.close()
Python
1#file_function 2import PySimpleGUI as sg 3import os 4from file_select import FileSelect 5def file_func(event, first_file_path,second_file_path): 6 if first_file_path == '': 7 return '1' , '1つ目のファイルを選択してください。' 8 elif second_file_path == '': 9 return '1' , '2つ目のファイルを選択してください。' 10 elif os.path.splitext(first_file_path)[1] != '.txt': 11 return '1' , '1つ目のファイルはテキストファイルを選択してください。' 12 elif os.path.splitext(second_file_path)[1] != '.txt': 13 return'1','2つ目のファイルはテキストファイルを選択してください。'
#試したこと
file_functionの最終行
1 elif (first_file_path == '') and (second_file_path == ''): 2 return'1', '1つ目・2つ目のファイルを選択してください。'
の実行(複合条件のつもりで確認したのですが、結果としては1つ目のファイルを選択してくださいのみの表示でした。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/19 23:53