アリンコス部品管理その17
表示画面2動作確認その1
データベースから引き出し日や消費個数などを表にしたもの
画面のイメージ図はこれ
実際のコード
#2022-3-22作成 #ファイル名:アリンコス部品管理表示画面2動作確認その2 #画面を見やすくする為の空白エリアを入れた #表示画面2動作確認その2は、tabの切り替え実装 #入力1から表示2までの切り替え確認 #数量、引き出し日、分類、販売コードの下の入力項目は、本来ならデータベースから引っ張り出した各値だが #表示する位置の確認としてsg.Inputを入れた import PySimpleGUI as sg #入力フォーム1 sg.theme('LightBlue7') 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行目 ] #入力フォーム2 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行目 ] #入力フォーム3 tab3_layout =[ [sg.Text('【入力画面3】', font=('小塚ゴシック', 26))], #2行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Text('消費した時のみ入力する事!', font=('小塚ゴシック', 16))], #3行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Text('消費個数', font=('小塚ゴシック', 16)), sg.T(' '*50), sg.Text('消費した日付', font=('小塚ゴシック', 16)) ], #4行目 [sg.Input(size=(10,2), key='-Number_of_pieces_consumed-'), sg.T(' '*60), sg.Input(size=(15,2), key='-Date_consumed-')], #5行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Text('消費理由', font=('小塚ゴシック', 16)), sg.T(' '*110), sg.Text('どのような基板で使われているか',font=('小塚ゴシック', 16))], #6行目 [sg.Multiline(size=(45,8), key='-Reason_for_consump-'), sg.T(' '*60), sg.Multiline(size=(55,8), key='-Reason_for_consumption-')], #7行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Button('DBへ登録', key='-DB3-'), sg.T(' '*50), sg.Button('クリア', key='-Clear3-')] #8行目 ] #表示画面1 tab4_layout =[ [sg.Text('【表示画面1】',font=('小塚ゴシック', 26))], #2行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.T(' '*40), sg.Text('部品名', font=('小塚ゴシック', 16))], #3行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.T(' '*40), sg.Input(size=(20,2), key='-Parts_name-')], #4行目 [sg.Text('数量', font=('小塚ゴシック', 16)), sg.T(' '*50), sg.Text('引き出し日', font=('小塚ゴシック', 16))], #5行目 [sg.Input(size=(20,2), key='-Quantity-'), sg.T(' '*50), sg.Input(size=(20,2), key='-Withdrawal_date-')], #6行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Text('分類', font=('小塚ゴシック', 16)), sg.T(' '*50), sg.Text('販売コード', font=('小塚ゴシック', 16))], #7行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Input(size=(20,2), key='-Class-'), sg.T(' '*50), sg.Input(size=(20,2), key='-Sales_code-')], #8行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.T(' '*50), sg.Button('検索', key='-Search-')] #9行目 ] #表を作る為に必要な変数 #行列の値 var=[] #列名 name=['引き出し日', '部品名', '分類', '消費個数(個)'] #表示画面2 tab5_layout =[ [sg.Text('【表示画面2】', font=('小塚ゴシック', 26))], #2行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Text('期間', font=('小塚ゴシック', 16)), sg.Input(size=(20,4)), sg.Text('から', font=('小塚ゴシック', 16))], #3行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.T(' '*50), sg.Button('検索', key='-Search2-')], #4行目 [sg.T(' '*20)], #画面を見やすくする為の空白エリア [sg.Table(var, headings= name, auto_size_columns=False, vertical_scroll_only=False, def_col_width=15, num_rows=5, display_row_numbers=False, font=('小塚ゴシック', 16), header_text_color='#0000ff', header_background_color='#cccccc')] #5行目 ] main_layout = [ [sg.TabGroup([[sg.Tab('入力1', tab1_layout), sg.Tab('入力2', tab2_layout), sg.Tab('入力3', tab3_layout), sg.Tab('表示1', tab4_layout), sg.Tab('表示2', tab5_layout)]])], #1行目 [sg.Quit()] ] main_window = sg.Window('アリンコス部品管理 表示画面2動作確認その2tab切り替え実装', main_layout, size=(1000, 500)) while True: main_event, main_values = main_window.read() if main_event in (None, 'Quit'): #×ボタンやQuitボタンを押すとウィンドウを閉じる break main_window.close()
実際の画面はこんな感じに
次は、表示画面2動作確認その2でタブ切り替えを実装する