ryotankの備考録日記

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

素材集めGUIその3

今回はag.Comboの項目を選んだら
マップ名を表示するようにしたい


例えば、中級源岩を選べば4-6と

半自然溶剤を選べば9-18を表示するように

[sg.Combo(values=['中級源岩', '半自然溶剤'], size=(20,1), key='SOZAI', enable_events=True)]

enable_events=Trueとする事で、項目を変えた時にイベントとして取得できるように
変化する


if event == 'SOZAI':
    sozai = values['SOZAI']
    mapname = get_mapname(sozai)
    window.FindElment('MAPNAME').update(values=mapname)

上のようにコンボボックスが選択されていると、
event == 'SOZAI'でメソッドを使用出来る

これをver1.0のコードに組み込んで動作確認をする

def get_mapname(sozai_name):
    """"素材名を受け取り、ステージ名を返す"""
    map_dict ={'中級源岩':['4-6'],
		'半自然溶剤':['9-18']}

    return map_dict[sozai_name]

layout = [[sg.Text('素材名')],
          [sg.Combo(values=['中級源岩', '半自然溶剤'], size=(20, 1), key='SOZAI', enable_events=True)],
          [sg.Text('ステージ名')],
          [sg.Combo(values=[''], size=(20, 1), key='MAPNAME')],
          [sg.Button('Exit')]]

window = sg.Window('コンボボックステスト_素材変化', 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']
    	mapname = get_mapname(sozai)
    	window.FindElment('MAPNAME').update(values=mapname)

window.close()

次回は、各素材にマップ名を組み込んで動作するかを検証する