アリンコス部品管理その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形式にしてみた
次回は入力フォーム2の動作確認その2を試す
フォームから入力画面3のタブに切り替えを実装する