望月の息抜き

在宅勤務の息抜きです。主にプログラミングについて書いていきたいと思います。

【Python】【2】簡易GUI表示

【記事の目標】

Pythonで簡単なGUIを表示する。

 

【作業手順】

1.PySimpleGUIをインストール

2.GUI表示用のプログラム作成

3.簡単なGUIの表示

 

1.PySimpleGUIをインストール

まずは、自分の開発環境にPySimpleGUIをインストールしましょう。

ターミナルにて以下コマンドを実行しましょう。

 linuxの場合:pip install pysimplegui
 windowsの場合:py -m pip install pysimplegui

windowsの場合は「py -m」を先頭に付ける必要があるので注意です。

コマンド実行後にSuccessfully...と表示されれば完了です。

f:id:fysker:20211021141141p:plain


2.GUI表示用のプログラム作成

まずは、pysimpleguiをimportします。

import PySimpleGUI as sg

これでpysimpleguiが利用できるようになりました。

 

必要に応じて、テーマを決めます。

sg.theme('Dark Brown')

私は Dark Brown を設定しました。

 

ここからレイアウトの設定を行います。

layout = [
[sg.Text('初めてのGUI表示')],
[sg.Button('Hello World', key='hello')],
[sg.Output(size=(80, 5))]
]

sg.Textの行では、テキストを表示するエリアを設定。

sg.Buttonの行では、ボタン名やボタンのアクションを設定。

sg.Outputの行では、文字列を出力するエリアを設定。

 

ここまで設定が終わったら、画面を表示する処理を追加。

window = sg.Window('初めてのGUI', layout)

第一引数は画面の名前になります。

layoutはひとつ前の作業で設定したレイアウトです。

 

画面が表示された後は、画面を閉じるまで無限ループの処理を設定します。

while True:
event, values = window.read()

if event == sg.WIN_CLOSED:
break

if event == 'hello':
print('Hello World!')

while True: で無限ループを行います。

window.read()で画面のアクションを取得し、以降のif文にて、処理を分岐させる形です。

一つ目のif文は、画面をクローズした際の処理となります。

画面をクローズした際は、無限ループを終了させる必要があるため、breakします。

二つ目のif文は、「Hello World」のボタンを押したときの処理となります。

押した際にprintでHello World!と表示します。

 

一番最後に、開いた画面を閉じる処理が必要です。

window.close()

これで、コーディング完了です。

画面を開いてみましょう。

 

3.簡単なGUIの表示

それでは、私はPyCharmを使用していますので、Shift+F10で「2.GUI表示用のプログラム作成」で作成したプログラムを実行します。

f:id:fysker:20211021195512p:plain

このような画面が表示されます。

Hello World」ボタンを押すと、下のエリアに「Hello World!」と表示されます。

f:id:fysker:20211021195659p:plain

右上の「×」ボタンを押すことでウィンドウが閉じ、プログラムが終了します。

f:id:fysker:20211021195753p:plain

この表記が出たら目標達成となります。

 

 

前回からだいぶ時間が空いてしまいましたが、気ままに気になったプログラムを作っていきたいと思っています。

GUIの作成は結構時間がかかるのかと思っていましたが、定義だけで簡単な画面を作成できるのはありがたいですね。

単純なプログラムでも、GUIがあることで少しリッチに見えたり、あまりプログラムになじみがない人に見せると驚かせたりもできそうですね。

 

1時間もかからないくらいでできたので、皆さんも試してみてはいかがでしょうか。