基板作りチェックリストその33
フォームで入力した項目を変数に格納するその1
その1:基板名入力フォームで入力した基板名を変数に格納し
それを通知するもの
"""フォームで入力された項目(基板の名前の項目のみ)を変数に格納し 格納した値をpopupで通知する 作成年月日:2022-6-1 動作確認日:2022-6-6 その2はリスト作成日(数字のみ)を変数に格納し、それをpopupで通知する """ import PySimpleGUI as sg sg.theme('LightBlue2') # ------ Menu Definition ------ # menu_def = [ ['&ファイル', ['&開く Ctrl-O', '&保存 Ctrl-S', '&Properties', '&閉じる']], ['編集', ['&印刷プレビュー', '&印刷', ], ], ['&Toolbar', ['---', 'Command &1', 'Command &2', '---', 'Command &3', 'Command &4']], ['&ヘルプ', ['&オフライン対応ヘルプ', '&ReadMe','---', '&About...']],] #L6:実装済み基板の外観検査 L6 = [ [sg.Checkbox('半田がついてなかったりボール状の半田になっていないか', font='メイリオ 14', default=False, enable_events=True,)], [sg.Checkbox('半田は富士山の形状をしているか', font='メイリオ 15', default=False, enable_events=True)], [sg.Checkbox('DIPの挿入ミスで端子が曲がっていないか', font='メイリオ 15', default=False, enable_events=True)], [sg.Checkbox('ICが逆に実装されていないか', font='メイリオ 15', default=False, enable_events=True)], [sg.Checkbox('すべての電源ICの入出力とGND間はショート(短絡)していないか', font='メイリオ 15', default=False, enable_events=True)], [sg.Checkbox('電源投入後、熱くなったり臭いを放ったりする部品は無いか', font='メイリオ 15', default=False, enable_events=True)] ] #L7:電源投入と基本動作判定 L7 = [ [sg.Checkbox('安定化電源に電流リミッタをかけてあるか', font='メイリオ 15', default=False, enable_events=True),], [sg.Checkbox('5Vや3Vの電源バスの電圧が狙い通りか', font='メイリオ 15', default=False, enable_events=True)] ] # ------ GUI Defintion ------ # L = [ [sg.Column([ [sg.T(''*10)], [sg.Menu(menu_def, tearoff=False, pad=(200, 1))], [sg.Frame('6.実装済み基板の外観検査', L6, font='メイリオ 20')], [sg.T(' '*60)], [sg.Frame('7.電源投入と基本動作', L7, font='メイリオ 18')], [sg.Output(size=(70, 12),font='小塚ゴシック 16')]], #Menuボタンの確認用でOutputを配置している scrollable=True, vertical_scroll_only=True)], [sg.T(' '*20), sg.Button('一時保存',key='-TempSAVE-', font='小塚ゴシック 16', bind_return_key= True, size=(10,2)), sg.T(' '*25), sg.Button('すべて解除', key='-CLEAR-', bind_return_key= True, font='小塚ゴシック 16', size=(10,2)), sg.T(' '*40), sg.Button('基板名\n入力フォーム', key='-BOARDinput-form-', font='小塚ゴシック 16',size=(10,2) , button_color='Green')], [sg.T(' '*10), sg.Button('PDF出力', key='OUTPUT', font='小塚ゴシック 16', size=(10,2), button_color='red')] ] window = sg.Window('基板作りチェック入力項目を変数に格納その1', L, ) #イベントループ while True: main_event, value= window.read() #イベントの読み取り(イベント待ち) if main_event in (sg.WIN_CLOSED, '閉じる'): break print(main_event, value) #Menuボタンの確認用で配置している if main_event == '-BOARDinput-form-': #基板名入力フォームボタンが押されたら #サブ画面を開く時に毎回layoutを宣言する #エラーが発生せず、何度でも展開できる sg.theme('LightGray6') #テーマの設定 sub_layout = [ [sg.Text('基板名 入力欄', font=14), sg.T(' ' *10), sg.Input(key='-BOARD_NAME-')], [sg.T('')], [sg.Text('リスト作成日 入力欄', font=14), sg.Input(key='-LIST_DATE-')], [sg.T('')], [sg.T(' '*20), sg.Button('記入', font=16, key='-Data_ENTER-')], [sg.Button('読み取る', font=16, key='-get-')], [sg.Text(size=(30,1), key='-Form_OUT-')] ] sub_window = sg.Window('基板名入力フォーム (1/2)', layout= sub_layout) while True: sub_event, sub_value = sub_window.read() if sub_event is None: break elif sub_event =='-get-': BN_input = sub_value['-BOARD_NAME-'] +"が入力されました" sg.popup(BN_input) sub_window.close() #入力フォームを閉じる #終了処理 window.close()
という感じになった
sg.popupでフォームで入力した基板名を通知した
次回は、リスト作成年月日を変数に格納したその2を作成する