回路草案入力フォームその13
フォームのイメージ図通りに作り込んだ
このように出来たので、
先に、クリアボタンの実装を試す
クリアボタンの実装は以下の通り記述する
elif event == '-CLEAR-': #フォーム1のクリアボタンが押されたら window['cad_name'].update("") #回路cad名をカラにする window['purpose'].update("") #作成目的をカラにする
フォームの全体コードは以下のようになる
#回路草案作成フォームGUI動作確認 #2022-4-22作成 #Tabの切り替えで作成フォームを切り替える from PySimpleGUI import TITLE_LOCATION_TOP, InputText import PySimpleGUI as sg sg.theme('DarkBlue5') #分類分けフレーム L1 =[ [sg.Radio('モジュール基板', group_id='g1', font=('小塚ゴシック', 15))], [sg.Radio('試作基板', group_id='g1', font=('小塚ゴシック', 15))], [sg.Radio('ホビー用基板', group_id='g1', default=True, font=('小塚ゴシック', 15))], [sg.Radio('実験基板', group_id='g1', font=('小塚ゴシック', 15))], [sg.Radio('書き込みアダプター', group_id='g1', font=('小塚ゴシック', 15))] ] tab1_layout = [ [sg.T('')], [sg.Text('各項目を入力して下さい')], [sg.Text('回路CADの名前'), sg.Input(size=(20,1), key='cad_name'), sg.Text('CADのverも忘れずに記入しよう', text_color='red')], [sg.Text('作成目的'), sg.Input(size=(20,1), key='purpose')], [sg.Frame('分類分け', L1, title_color='Green', font=('小塚ゴシック', 20), title_location=TITLE_LOCATION_TOP, pad=((150,0),(15,35)), border_width=4)], #3行目 [sg.Button('一時保存', key='-SAVE-'), sg.T(' '*30), sg.Button('クリア', key='-CLEAR-')] ] tab2_layout = [ [sg.T('')], [sg.Text('基板名'), sg.Input(size=(30,1), key='Board_name'), sg.Text('通称でも可')], [sg.Text('基板英名'), sg.Input(size=(49,1), key='Board_eng_name'), sg.Text('英名は回路CADで英字必須の為', text_color='red')], [sg.Text('電源供給方法'), sg.Multiline(size=(40,3), key='Power_supply_method')], [sg.Text('電源電圧'), sg.Input(size=(10,1), key='Power-supply_voltage'), sg.Text('[V]')], [sg.Text('基板概要'), sg.Input(size=(20,1), key='Board_outline')], [sg.Text('基板の大きさ'), sg.Text('横'), sg.Input(size=(10,1), key='Horizontal_size'), sg.Text('mm'), sg.Text('縦'), sg.Input(size=(10,1), key='Vertical_size'), sg.Text('mm')], [sg.Text('部品候補名A'), sg.Input(size=(15,1), key='Part_candidate_name_A')], [sg.Text('部品候補名B'), sg.Input(size=(15,1), key='Part_candidate_name_B')], [sg.Text('部品候補名C'), sg.Input(size=(15,1), key='Part_candidate_name_C')], [sg.Text('部品候補名D'), sg.Input(size=(15,1), key='Part_candidate_name_D')], [sg.Text('部品候補名E'), sg.Input(size=(15,1), key='Part_candidate_name_E')], [sg.Text('部品候補名F'), sg.Input(size=(15,1), key='Part_candidate_name_F')], [sg.Text('部品候補名G'), sg.Input(size=(15,1), key='Part_candidate_name_G')], [sg.T('')], [sg.Button('一時保存', key='-SAVE2-'), sg.T(' '*30), sg.Button('クリア', key='-CLEAR2-')] ] tab3_layout = [ [sg.T(' ')], [sg.Text('大まかな予算金額'), sg.Input(size=(10,1), key='Rough_budget_amount'), sg.Text('円(税別)')], [sg.Radio('pdf形式で残す',group_id='g2', font=('小塚ゴシック', 15)), sg.Radio('txt形式で残す', group_id='g2', font=('小塚ゴシック', 15))], [sg.Text('作成年月日(西暦で入力してね)')], [sg.Input(size=(15,1), key='Date_of_creation')], [sg.Button('一時保存', key='-SAVE3-'), sg.T(' '*30), sg.Button('クリア', key='-CLEAR3-'), sg.Button('出力する', key='-OUTPUT-')] ] layout =[ [sg.TabGroup([[sg.Tab('作成フォーム1', tab1_layout), sg.Tab('作成フォーム2', tab2_layout), sg.Tab('作成フォーム3', tab3_layout)]])] ] window = sg.Window('回路草案作成フォーム', layout, default_element_size=(20,1), size=(700,550)) while True: event, values = window.read() if event in None: break elif event == '-CLEAR-': #フォーム1のクリアボタンが押されたら window['cad_name'].update("") #回路cad名をカラにする window['purpose'].update("") #作成目的をカラにする elif event == '-CLEAR2-': #2のクリアボタンが押されたら window['Board_name'].update("") #基板名をカラにする window['Board__eng_name'].update("") #基板英名をカラにする window['Power_supply_method'].update("") #電源供給方法をカラにする window['Power-supply_voltage'].update("") #電源電圧をカラにする window['Board_outline'].update("") #基板概要をカラにする window['Horizontal_size'].update("") #横の大きさをカラにする window['Vertical_size'].update("") #縦の大きさをカラにする window['Part_candidate_name_A'].update("") #部品候補名Aをカラにする window['Part_candidate_name_B'].update("") #部品候補名Bをカラにする window['Part_candidate_name_C'].update("") #部品候補名Cをカラにする window['Part_candidate_name_D'].update("") #部品候補名Dをカラにする window['Part_candidate_name_E'].update("") #部品候補名Eをカラにする window['Part_candidate_name_F'].update("") #部品候補名Fをカラにする window['Part_candidate_name_G'].update("") #部品候補名Gをカラにする elif event == '-CLEAR3-': #3のクリアボタンが押されたら window['Rough_budget_amount'].update("") #大まかな予算金額をカラにする window['Date_of_creation'].update("") #作成年月日をカラにする window.close()
次回は、joblibの使い方について勉強する