減量管理入力補助GUIその14
画像を読み込めるようにsg.Imageを使って再現するので
早速コードを書いてみた
""" 実施せずというチェックボタンを付ける チェックボタンをチェックしたらそれぞれ該当する項目に「実施せず」と記入する アプリが完成したら専用アイコンを作り載せる事 複窓実装2021年8月11日 Tab表示での画像表示2021年8月11日 """ import PySimpleGUI as sg import openpyxl #Excelを操作する為のライブラリ def RG_window(): #実装したい処理を書く pass #Tab(タイトル、レイアウト) tabとtabgroupを設定するには、tabを生成してからtabGroupに設定する t4 = sg.Tab('やり方', [ [sg.Text('1.腰に両手をついて両足で立つ', font=20)], [sg.Text('2.足をゆっくり大きく前に踏み出す', font=20)], [sg.Text('3.太ももが水平になるくらいに腰を深く下げる', font=20)], [sg.Text('4.体を上げて踏み出した足をもとに戻す', font=20)] ]) t5 = sg.Tab('効果', [ [sg.Text('バランス能力や筋力をつく', font=20)], [sg.Text('1日の目安として5~10回を2から3セット',font=16)] ]) t6 = sg.Tab('参考体勢', [ [sg.Image(filename='C:/Users/ryotank-GGH/Desktop/Pythonプログラム関連/減量管理GUI/ランジ.png')]]) #TabGroupにtabを設定する sub2_layout = [ [sg.TabGroup([[t4, t5, t6]]) ]] #ランジウィンドウオブジェクトの生成 sub2_window = sg.Window("ランジのやり方について", layout = sub2_layout, size=(570,480)) while True: sub2_events, sub2_value = sub2_window.read() #ここでサブ2ウィンドウが入力待ち状態になる if sub2_events is None: break sub2_window.close() #ランジのやり方についてのウィンドウを閉じる def PK_window(): pass sg.theme('DarkTeal4') #プランクウィンドウのテーマ #Tab(タイトル、レイアウト) tabとtabgroupを設定するには、tabを生成してからtabGroupに設定する t1 = sg.Tab('やり方', [ [sg.Text('1.うつ伏せの状態で両肘と足のつま先をつける', font=20)], [sg.Text('2.足からつま先まで真っ直ぐにし、曲がらない様に注意', font=20)], [sg.Text('3.', font=20)] ] ) t2 = sg.Tab('効果', [ [sg.Text('腹直筋だけでなく、クビレ部分の筋肉や背中、腕の筋肉も鍛えられる', font=20)] ]) t3 = sg.Tab('参考体勢', [ [sg.Image(filename='C:/Users/ryotank-GGH/Desktop/Pythonプログラム関連/減量管理GUI/plank1.png')]]) #TabGroupにtabを設定する sub3_layout = [ [sg.TabGroup([[t1, t2, t3]])] ] #プランクウィンドウオブジェクトの生成 sub3_window = sg.Window("プランクのやり方について", layout = sub3_layout, size=(570,400)) while True: sub3_event, sub3_value= sub3_window.read() #ここでサブ3ウィンドウが入力待ち状態になる if sub3_event is None: break sub3_window.close() #プランクのやり方についてのウィンドウを閉じる def WS_window(): pass sg.theme('Python') #ワイドスクワットウィンドウのテーマ #Tab(タイトル、レイアウト) tabとtabgroupを設定するには、tabを生成してからtabGroupに設定する t4 = sg.Tab('やり方', [ [sg.Text('1.足を肩幅より広めに広げる', font=20)], [sg.Text('2.つま先を45度外側に向けて立つ', font=20)], [sg.Text('3.息を吸いながら、太ももが床と平行になるまで上体を下げる', font=20)] ] ) t5 = sg.Tab('効果', [ [sg.Text('基礎代謝が上がり痩せやすく太りにくい体質に', font=20)], [sg.Text('安定感をキープするのが難しいため、バランス感覚が養える')] ]) t6 = sg.Tab('参考体勢', [ [sg.Image(filename='C:/Users/ryotank-GGH/Desktop/Pythonプログラム関連/減量管理GUI/スクワット説明.png')]]) #TabGroupにtabを設定する sub4_layout = [ [sg.TabGroup([[t4, t5, t6]]) ]] #ワイドスクワットウィンドウオブジェクトの生成 sub4_window = sg.Window("ワイドスクワットのやり方について", layout = sub4_layout, size=(570,400)) while True: sub4_events, sub4_value= sub4_window.read() #ここでサブ4ウィンドウが入力待ち状態になる if sub4_events is None: break sub4_window.close() #ワイドスクワットのやり方についてのウィンドウを閉じる def SS_window(): pass sg.theme('Reds') #スワイショウウィンドウのテーマ #Tab(タイトル、レイアウト) tabとtabgroupを設定するには、tabを生成してからtabGroupに設定する t7 = sg.Tab('やり方', [ [sg.Text('1.両足を肩幅くらいに開き、膝を軽く曲げて立つ', font=20)], [sg.Text('2.腰を中心に手を振っていく', font=20)], [sg.Text('3.腰を軸にして肩や腕の力を抜き、ひねりに合わせ左右に自然に振る', font=20)] ] ) t8 = sg.Tab('効果', [ [sg.Text('誰でもできる運動で疲れた時に便利', font=20)] ]) t9 = sg.Tab('参考体勢', [ [sg.Image(filename='C:/Users/ryotank-GGH/Desktop/Pythonプログラム関連/減量管理GUI/スワイショウ.png')]]) #TabGroupにtabを設定する sub5_layout = [ [sg.TabGroup([[t7, t8, t9]]) ]] #スワイショウウィンドウオブジェクトの生成 sub5_window = sg.Window("スワイショウのやり方について", layout = sub5_layout, size=(570,400)) while True: sub5_events, sub5_value = sub5_window.read() #ここでサブ5ウィンドウが入力待ち状態になる if sub5_events is None: break sub5_window.close() #スワイショウのやり方についてのウィンドウを閉じる def NE_window(): pass sg.theme('Tan') #ニートゥエルボーウィンドウのテーマ #Tab(タイトル、レイアウト) tabとtabgroupを設定するには、tabを生成してからtabGroupに設定する t10 = sg.Tab('やり方', [ [sg.Text('1.うつ伏せの状態で両肘と足のつま先をつける', font=20)], [sg.Text('2.足からつま先まで真っ直ぐにし、曲がらない様に注意', font=20)], [sg.Text('3.', font=20)] ] ) t11 = sg.Tab('効果', [ [sg.Text('腹直筋だけでなく、クビレ部分の筋肉や背中、腕の筋肉も鍛えられる', font=20)] ]) t12 = sg.Tab('参考体勢',[ [sg.Image(filename='C:/Users/ryotank-GGH/Desktop/Pythonプログラム関連/減量管理GUI/ニートゥエルボー説明.png')]]) #TabGroupにtabを設定する sub6_layout = [ [sg.TabGroup([[t10, t11, t12]]) ]] #ニートゥエルボーウィンドウオブジェクトの生成 sub6_window = sg.Window("ニートゥエルボーのやり方について", layout = sub6_layout, size=(570,530)) while True: sub6_events, sub6_value = sub6_window.read() #ここでサブ6ウィンドウが入力待ち状態になる if sub6_events is None: break sub6_window.close() #スワイショウのやり方についてのウィンドウを閉じる main_layout = [ [sg.Text('日付を選択して下さい', font=20)], [sg.Input(key= '-INPUT-'), sg.CalendarButton('カレンダー入力', font=16, target='-INPUT-')], # カレンダーの返り値を収納する先をtarget引数で指定 [sg.Text('ワイドスクワット', font=16)], [sg.InputText(default_text='運動した回数を入力して下さい', size=(30,5),key='-WS_INPUT-'), sg.Checkbox('実施せず', font=20, default=False)], [sg.Text('ニートゥエルボー', font=16)], [sg.InputText(default_text='運動した回数を入力して下さい', size=(30,5),key='-NE_INPUT-')], [sg.Text('ランジ', font=16)], [sg.InputText(default_text='運動した回数を入力して下さい', size=(30,5),key='-RG_INPUT-')], [sg.Text('プランク', font=16)], [sg.InputText(default_text='運動した時間(分)を入力してね', size=(30,5),key='-PK_INPUT-')], [sg.Text('スワイショウ', font=16)], [sg.InputText(default_text='運動した回数を入力して下さい', size=(30,5),key='-SS_INPUT-')], [sg.Button('登録', font=25, key='-SAVE-')], [sg.Button('入力した回数をクリア', font=15, key='-CLEAR-')], [sg.Button('トレーニング方法を確認する', font=25, size=(24,4), button_color='teal', key='-TR_WICH-')] ] main_window = sg.Window('減量管理入力補助', layout=main_layout, size=(650,500)) while True: main_event, main_value = main_window.read() #ここでメインウィンドウが入力待ち状態になる if main_event is None: break elif main_event == '-TR_WICH-': #トレーニング方法を確認するが押されたら #サブ画面を開く時に毎回layoutを宣言する #エラーが発生せず、何度でもポップアップを開閉できる! sg.theme('BluePurple') sub_layout = [ [sg.T(' '*22), sg.Button('ランジについて', font=25, key='-HOWTO_RG-')], [sg.Button('プランクについて', font=25, key='-HOWTO_PK-')], [sg.Button('ワイドスクワットについて', font=25, key='-HOWTO_WS-')], [sg.Button('スワイショウについて',font=25, key='-HOWTO_SS-')], [sg.Button('ニートゥエルボーについて',font=25, key='-HOWTO_NE-')] ] sub_window = sg.Window("トレーニング方法", layout=sub_layout, size=(400,450)) 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() sub_window.close() #トレーニング方法のウィンドウを閉じる main_window.close() #メインウインドウを閉じる
こんな感じになったが、画像を読み込んでくれない・・
しばらくは検証しないと・・・
読み込みが完成すれば
片足立ちを1分間行う方法と画像を運動の項目に追加する