LoginSignup
0
1

More than 1 year has passed since last update.

【発展版】PySimpleGUIで簡易アプリのメニュー画面を作る

Posted at

結論

作成したレイアウトは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)],]

こうなる
image.png

あくまで型枠だけ作成したが、実際にプログラムを作成したとき、右のターミナル出力に出力結果を出すこともできる。

ちなみに縦にしたいときはこう。指定した行列にあてはめられる。

layoutt=[[sg.Col(layout1)]
         ,[sg.Col(layout2)]]

image.png

layoutt=[sg.Col(layout1),sg.Col(layout2)]
こうするとエラーになるので注意。

それっぽくすると

image.png

layoutt=[[sg.Col(layout1),sg.Col(layout2)],
          [sg.Col(layout3),sg.Col(layout4)]
          ]

こんな感じで作成できる。
後は作成したいように公式見ながらやると勉強になる。
https://www.pysimplegui.org/en/latest/call%20reference/

次回はpyautoguiで遊ぶ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1