ryotankの備考録日記

趣味の電子工作についての備考録などなど

回路草案入力フォームその2

実際のフォーム画面のgifをのせる

f:id:ryotank:20211002074514g:plain
実際のフォーム画面をgifにしたもの

画面内の「次へ移動」ボタンを押すと画面が切り替わる

その時のソースコードが以下の通り

import PySimpleGUI as sg

def Form2_window():
    pass
    sub_layout = [      [sg.T(' '*18), sg.Text('各項目を入力して下さい', font='小塚ゴシック17')],  
                            [sg.Text('基板名', font='小塚ゴシック17'), sg.Input()], #1行目
                            [sg.Text('基板の英名',font='小塚ゴシック17'), sg.Input(), 
                 sg.Text('英名は回路CADで英字必須の為', 
                                font='小塚ゴシック17',text_color='blue')], #2行目
                            [sg.Text('部品構成', font='小塚ゴシック17'), 
                             sg.Multiline(size=(40,20))], #3行目
                            [sg.T('')],
                            [sg.Button('一時保存', font='小塚ゴシック17'), sg.T(' '*26), sg.Button('クリア', font='小塚ゴシック17'), 
                             sg.T(' '*24), sg.Button('次へ移動', font='小塚ゴシック17', key='-Second-', button_color='green')], #4行目
                            [sg.T('')]
    ]

    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-':
                    From3_window()
                sub_window.close() #フォーム2/3を閉じる


def From3_window():
    pass
    sub2_layout = [     [sg.T(' '*18), sg.Text('各項目を入力して下さい', font='小塚ゴシック17')],  
                        [sg.Text('大まかな予算金額', font='小塚ゴシック17'), sg.Input(), sg.Text('円(税別)')], #1行目
                        [sg.Radio('pdfデータで残す', group_id='a1', font='小塚ゴシック17'), 
                         sg.Radio('txtデータで残す', group_id='a1',font='小塚ゴシック17')], #2行目
                        [sg.Text('作成年月日(西暦で入力して)', font='小塚ゴシック17'), sg.Input(size=(20,2), pad=(20,10))], #3行目
                        [sg.Button('一時保存', font='小塚ゴシック17'), sg.T(' '*20), sg.Button('クリア', font='小塚ゴシック17'),
                         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

                sub2_window.close() #フォーム3/3を閉じる



#分類分けFrame
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))]
    ]

sg.theme('LightGreen3')

main_layout =[
            [sg.Text('入力フォーム(1/3)', font=('小塚ゴシックpro',13))],
            [sg.Text('回路CADの名前', font=('小塚ゴシックpro',16)), sg.InputText(pad=((0,0),(20,20)), key='InText')], #1行目

            [sg.Text('目的',font=('小塚ゴシックpro',16)), sg.InputText(pad=((0,0),(40,40)))], #2行目

            [sg.Frame('分類分け', L1, title_color='Blue', font=('小塚ゴシック', 20), title_location=TITLE_LOCATION_TOP, 
                        pad=((150,0),(15,35)), border_width=4)], #3行目

            [sg.T(' ' *6), sg.Button('一時保存',size=(10,2), font=('小塚ゴシック', 15), key='update', button_color='blue'), #薄い青 
             sg.T(' ' *8), sg.Button('クリア',size=(10,2), font=('小塚ゴシック', 15), key='clear', button_color='blue'),
             sg.T(' ' *6), sg.Button('次へ移動', size=(10,2), font=('小塚ゴシック', 15), key='-First-', 
                               button_color='red')] #4行目
]

main_window = sg.Window('回路草案入力フォーム', layout=main_layout, size=(530,540))


#イベントループ
while True:
    main_event, main_values= main_window.read()  #メインウインドウの入力待ち(イベント待ち)
    
    if main_event is None:
          break
    elif main_event == '-First-': #「次へ移動」が押されたら
        Form2_window() 
     
#終了処理
main_window.close()

次回は各機能の実装に必要な下調べを記載する予定