ryotankの備考録日記

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

素材集めGUIその4

各素材にステージ名を組み込んで動作するかを検証

試しに走らせると次のようなエラーが発生

どうやら"リストに[]する時は文字列は使えないので、
数字かスライス[3:8]もような表記をつけよう"というエラー内容みたい

その時のコードが

#ファイル名:素材集め表示GUI_ver1.0

#動作確認日:

import PySimpleGUI as sg

sg.theme('LightGreen4')


def get_stagename(sozai_name):
    """"素材名を受け取り、ステージ名を返す"""
    stage_dict ={'合成コール'}, {'マンガン'}, {'碇石(ていせき)'}, {'RMA70-12'}, {'人工ゲル'}, 
    {'素子結晶'}, {'合金'}, {'中級源岩':['4-6']}, {'半自然溶剤':['9-18']}

    return stage_dict[sozai_name]


layout = [
        [sg.Text('素材名')],
        [sg.Combo(values=['合成コール','マンガン', '碇石(ていせき)', 'RMA70-12', '人工ゲル',
        '素子結晶', '合金',
        '中級源岩', '半自然溶剤'], default_value="選択してください。",size=(20, 1), key='SOZAI', enable_events=True)],
        [sg.Text('ステージ名')],
        [sg.Combo(values=[''], size=(20, 1), key='STAGENAME')],
        [sg.T('')],
        [sg.Button('Exit')]
        ]

window = sg.Window('素材集め表示GUI_ver1.0', size=(300, 300)).Layout(layout)

while True:
    event, values = window.read()
    if event is None or event == 'Exit':
        break

    if event == 'SOZAI':
            sozai = values['SOZAI']
    stagename = get_stagename(sozai)
    window.FindElement('STAGENAME').update(values=stagename)

window.close()

どうやらstage_dictの書き方がまずいかも・・と疑い始めた

次回は、そのdictの書き方について勉強して直した上で
ver1.0のコードを書き直して動作するかを確かめる