結論
作成したレイアウトはsg.Col(layout)を利用してまとめることが出来る。
前回はPysimpleGUIで簡易アプリを作成した。
しかしながらこのままでは単純なGUI操作しか行えない。
入力してスタートみたいなことしか行えない。
これをちょっと発展させる。
下は前回作成したGUIのレイアウトである。
import PySimpleGUI as sg
layout1=[
[sg.Text('検索キーワード',font=100)],
[sg.In(key='word')],
[sg.Text('保存先ファイルを選択(ファイルのアドレスを記入)',font=60)],
[sg.InputText(),sg.FolderBrowse(key="folder",size=(10,5))],
[sg.Button('スタート',font=50,size=(15,3),pad=(100,10))],
[sg.Button('終了',font=50,size=(15,3),pad=(100,10))]
]
例えば上のプログラムだけだと、スタートボタンを押した後、実行が終わったかどうかわかりにくい。
pyinstallerとかでexe化したときに分かりづらくなってしまうので少しプログラムを変更してみる。
GUIのレイアウト表示を発展させるsg.Col()
pysimpleguiのCol()を使用すると、レイアウトをまとめられます。
試しにここでlayout2を作成してみる。これはターミナル上での出力を表示させる形式にしている。
layout2 =[
#size(retu gyou)
[sg.Text('ターミナル出力',font=100)],
[sg.Output(size=(40,20))]
]
これをまとめると、、
#まとめる
layoutt=[[sg.Col(layout1),sg.Col(layout2)],]
あくまで型枠だけ作成したが、実際にプログラムを作成したとき、右のターミナル出力に出力結果を出すこともできる。
ちなみに縦にしたいときはこう。指定した行列にあてはめられる。
layoutt=[[sg.Col(layout1)]
,[sg.Col(layout2)]]
layoutt=[sg.Col(layout1),sg.Col(layout2)]
こうするとエラーになるので注意。
それっぽくすると
layoutt=[[sg.Col(layout1),sg.Col(layout2)],
[sg.Col(layout3),sg.Col(layout4)]
]
こんな感じで作成できる。
後は作成したいように公式見ながらやると勉強になる。
https://www.pysimplegui.org/en/latest/call%20reference/
次回はpyautoguiで遊ぶ