0
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PySimpleGUIで簡易アプリのメニュー画面を作る

Posted at

PySimpleGUIでメニュー画面を作成する。

PySimpleGUはデスクトップアプリを作成するGUIライブラリ
:::note alert 
その名の通りデスクトップアプリなので、ローカル上で動作する。googleclabでは実行してもGUIは表示されないので注意。
:::

インストール

pip install pysimplegui

インポート

import PySimpleGUI as sg

でインポートできる。
毎度毎度pysimpleguiと打つのは大変なので
as sg
とすると後が楽。

レイアウトでよく使うもの

・sg.Text('キーワード')
・sg.In(key='word')
・sg.InputText()
・sg.FolderBrowse(key="folder")
・sg.Button('スタート')

Text

テキストの表示

In

入力欄

InputText

文字入力

FolderBrowse

image.png
こんな感じにファイル参照される。

###Button

##レイアウトの仕組み
GUIを表示させるには、Windowを作成する必要がある。
window = sg.Window('メニュー名', layout )
event, values = window.read()

メニュー名はこんなの

image.png

layout

レイアウトは作成したテキストとかボタンとかの並び順を指定できる。
レイアウトは以下のように配列みたいに格納する

layout=[
 
            [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))]
        
        ]

これを実行すると
image.png
図 GUI表示

こんな感じの画面が出てくる。

レイアウトはカンマ(,)区切りで行が変わる。

layout=[
        [一行目],
        [二行目],
        ///
        [n行目],
        ]

一つの行に2つ以上の要素を入れたいときは、
[ n行目要素2 , n行目要素2] のように指定する。
上のGUI表示図を見ると、

[sg.InputText(),sg.FolderBrowse(key="folder",size=(10,5))]

がこれにあたる。

layout=[
        [一行目],
        [二行目要素1,二行目要素2],
        ///
        [n行目],
        ]
0
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?