回路草案入力フォームその10
フォーム2ページと3ページ目にクリアボタン実装したが
うまく出来なかった
その時の失敗コードを晒す
def Form2_window(): #フォーム2/3 pass sub_layout = [ [sg.T(' '*18), sg.Text('各項目を入力して下さい', font='小塚ゴシック17')], [sg.Text('基板名', font='小塚ゴシック17'), sg.Input(key='-Board name-')], #1行目 [sg.T(' ')], #空白を挿入 [sg.Text('基板の英名', font='小塚ゴシック17'), sg.Input(), sg.Text('英名は回路CADで英字必須', font='小塚ゴシック17', text_color='blue')], #2行目 [sg.T(' ')], #空白を挿入 [sg.Text('部品構成', font='小塚ゴシック17'), sg.Multiline(size=(40,20), key='-Parts composition-')], #3行目 [sg.T(' ')], [sg.Button('一時保存', font='小塚ゴシック17'), sg.T(' '*26), sg.Button('クリア', font='小塚ゴシック17',key='-Clear2-'), sg.T(' '*24), sg.Button('次へ移動', font='小塚ゴシック17', key='-Second-',button_color='green')] #4行目 ] sub_window = sg.Window('回路草案入力フォーム(2/3)', layout=sub_layout) while True: sub_events, sub_values = sub_window.read() if sub_events is None: break elif sub_events == '-Second-': #「次へ移動」が押されたら Form3_window() #フォーム3/3を開く elif sub_events =='-Clear2-': #「クリア」が押されたら #sub_windowの入力項目を空にする sub_window['-Board name-'].update("") #基板名を空に sub_window['-Board English name-'].update("") #基板英名を空に sub_window['-Parts composition-'].update("") #部品構成を空に sub_window.close() #フォーム2/3を閉じる def Form3_window(): #フォーム3/3(フォーム最後のページ) pass sub2_layout = [ [sg.T(' '*18), sg.Text('各項目を入力して下さい', font='小塚ゴシック17')], [sg.Text('大まかな予算金額', key='-Budget amount-', font='小塚ゴシック17'), sg.Input(size=(20,2)), sg.Text('円(税別)')], #1行目 [sg.T(' ')], [sg.Radio('pdfデータで残す', group_id='a1', font='小塚ゴシック17'), sg.Radio('txtデータで残す', group_id='a1',font='小塚ゴシック17')], #2行目 [sg.Text('作成年月日(西暦で入力して)', key='-Date of creation-', font='小塚ゴシック17'), sg.Input(size=(20,2), pad=(20,10))], #3行目 [sg.Button('一時保存', font='小塚ゴシック17'), sg.T(' '*20), sg.Button('クリア', font='小塚ゴシック17', key='-Clear3-'), sg.T(' '*17), sg.Button('出力', font='小塚ゴシック17', button_color='Green')] ] sub2_window = sg.Window('回路草案入力フォーム(3/3)', layout=sub2_layout, size=(500,250)) while True : sub2_events, sub2_values =sub2_window.read() if sub2_events is None: break elif sub2_events == '-Clear3-': #「クリア」が押されたら #sub2_windowの各入力項目を空にする sub2_window['-Budget amount-'].update("") #予算金額を空に sub2_window['-Date of creation-'].update("") #作成年月日を空に sub2_window.close() #フォーム3/3を閉じる
では何故失敗したのか
それは、
sg.Text(テキストを表示する)にkeyイベントを発生させていたからである
なのでsg.Input(入力をする)所にkeyイベントを付けて
入力された項目を空にするというコードに書き直した
次回は、修正したコードを載せ、一連の動作をのっける予定