減量管理入力補助GUIその9
悩んでいた複窓実装の問題が解決した!
イベントを振り分ける事で解消された
つまりはeventに入っているkeyを確認して条件分岐をさせた
書き方として
def NE_window(): #実際にここに実現したい処理を記載する pass
となり
while True: sub_event, sub_value = sub_window.read() #ここでサブウィンドウが入力待ち状態になる if sub_event is None: break #keyの文字列を判定しイベント処理を分岐させる elif sub_event == '-HOWTO_RG-': #ランジについてのウィンドウを開くコマンド RG_window() elif sub_event == '-HOWTO_PK-': #プランクについてのウィンドウを開くコマンド PK_window() elif sub_event == '-HOWTO_WS-': #ワイドスクワットについてのウィンドウを開くコマンド WS_window() elif sub_event == '-HOWTO_SS-': #スワイショウについてのウィンドウを開くコマンド SS_window() elif sub_event == '-HOWTO_NE-': #ニートゥエルボーについてのウィンドウを開くコマンド NE_window()
という風に書き分けた
さきほどのNE_window()の関数に
レイアウトとウィンドウオブジェクトの生成を書いた。
一応関数の中身も記載しておく
def NE_window(): pass sg.theme('Tan') #ニートゥエルボーウィンドウのテーマ sub6_layout = [ [sg.Text('サブ6窓のテスト', font=14)], [sg.Text('いろいろ出来てきたぞい3', font=14)] ] #ニートゥエルボーウィンドウオブジェクトの生成 sub6_window = sg.Window("ニートゥエルボーのやり方について", layout = sub6_layout, size=(600,350)) while True: sub6_events, sub6_value = sub6_window.read() #ここでサブ6ウィンドウが入力待ち状態になる if sub6_events is None: break sub6_window.close() #スワイショウのやり方についてのウィンドウを閉じる
それぞれの実際のウィンドウはこんな感じになる
から
ランジ窓
プランク窓
ワイドスクワット窓
ニートゥエルボー窓
これで複窓の実装に成功したので
次回からはボタンをクリックした時の動作を実装していく