ryotankの備考録日記

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

アリンコス部品管理その13

入力フォーム1の動作確認その2で
タブの切り替えを実装する

具体的には、フォームから入力2タブを押すと
入力画面1から入力画面2に切り替わる

まずタブを再現するにはsg.TabGroupを使う

そして、該当するTab名をtab_layoutで呼び出すという形で切り替えを実装出来る

その時のコードは以下のようになった

#2022-3-19作成

#ファイル名:アリンコス部品管理入力1フォーム動作確認その2
#画面を見やすくする為の空白エリアを入れた
#動作確認その2は、画面1からの画面2の切り替えを試す
#タブの切り替えはsg.TabGroupを使う

import PySimpleGUI as sg

sg.theme('LightBlue3')

tab1_layout =[
    [sg.Text('【入力画面1】', font=('小塚ゴシック', 26))],   #2行目
    [sg.T(' '*20)],  #画面を見やすくする為の空白エリア
    [sg.Text('分類', font=('小塚ゴシック', 16)), sg.Input(size=(20,2), key='-Class-'), sg.T(' '*20),
     sg.Text('型番(品番)', font=('小塚ゴシック', 16)),sg.Input(size=(20,2), key='-Model_number-')],     #3行目

    [sg.Text('製品名', font=('小塚ゴシック', 16)), sg.Input(size=(20,2), key='-Product_name-'), 
     sg.Text('メーカー名', font=('小塚ゴシック', 16)), sg.Input(size=(20,2), key='-Manufacture_name-')],   #4行目
    [sg.T(' '*20)],  #画面を見やすくする為の空白エリア
    [sg.Text('購入先', font=('小塚ゴシック', 16)), sg.Input(size=(20,2), key='-Retailer-'),
     sg.Text('販売コード', font=('小塚ゴシック', 16)), sg.Input(size=(20,2), key='-Sales_code-')],   #5行目
    [sg.T(' '*20)],  #画面を見やすくする為の空白エリア
    [sg.Button('DBへ登録', key='-DB1-'), sg.T(), sg.T(' '*50), sg.Button('クリア', key='-Clear1-')]  #6行目
]


tab2_layout =[
    [sg.Text('【入力画面2】', font=('小塚ゴシック', 26))],   #2行目
    [sg.Text('価格', font=('小塚ゴシック', 16)), sg.T(' '*20),
     sg.Text('パッケージ名', font=('小塚ゴシック', 16)), sg.T(' '*30), sg.Text('所持個数', font=('小塚ゴシック', 16)), sg.Text('')],     #3行目
    [sg.Input(size=(10,2), key='-price-'), sg.Text('円', font=('小塚ゴシック', 16)), sg.T(' '*20),
     sg.Input(size=(20,2), key='-package_name-'), sg.T(' '*20), sg.Input(size=(10,2), key='-Number_of_possessions-'),
     sg.Text('個', font=('小塚ゴシック', 16))],   #4行目
    [sg.T(' '*20)],  #画面を見やすくする為の空白エリア
    [sg.T(' '*50), sg.Text('備考', font=('小塚ゴシック', 16))],     #5行目
    [sg.Multiline(size=(60,8), key='-remarks-')],    #6行目
    [sg.T(' '*20)],  #画面を見やすくする為の空白エリア
    [sg.Button('DBへ登録', key='-DB1-'), sg.T(), sg.T(' '*50), sg.Button('クリア', key='-Clear1-')]  #7行目
]

tab3_layout =[

]

tab4_layout =[

]


main_layout = [
    [sg.TabGroup([[sg.Tab('入力1', tab1_layout), sg.Tab('入力2', tab2_layout),
     sg.Tab('入力3', tab3_layout), sg.Tab('表示', tab4_layout)]])],  #1行目
    [sg.Quit()]
]

main_window = sg.Window('アリンコス部品管理 入力フォーム1動作確認その2tab切り替え実装', main_layout, size=(1000, 500))

while True:
    main_event, main_values = main_window.read()

    if main_event in (None, 'Quit'):
        break

main_window.close()

tab3_layoutとtab4_layoutに何も書いてないのは
他の画面レイアウトが決まってない為

実際の画面はGIF形式にしてみた

f:id:ryotank:20220321165123g:plain
入力画面1から入力画面2のタブ切り替え実装確認

次回は入力フォーム2の動作確認その2を試す

フォームから入力画面3のタブに切り替えを実装する