素材集め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()
次回は、各素材にマップ名を組み込んで動作するかを検証する