PythonのGUIライブラリ「PySimpleGUI」を触ってみた


undefined
プログラミングど初級者ですが, PythonでGUIアプリケーションを作りたいと思い, 「PySimpleGUI」について勉強したのでまとめてみたいと思います.

参考にさせていただいたサイト

PythonでGUIライブラリはどれがおすすめ?:
GUIとは何ぞや?から,PythonでGUIアプリケーションを作成するためのライブラリが4つ紹介されています.

Tkinterを使うのであればPySimpleGUIを使ってみたらという話:
Pythonで標準で組み込まれている「Tkinter」よりも簡潔な記述でGUIを作成できる「PySimpleGUI」の紹介記事です.今回はこの「PySimpleGUI」を使ってGUIを作ってみようと思います.

公式ドキュメント:
前述の「PySimpleGUI」の公式ドキュメントです.

開発環境

  • Windows10 64bit
  • Python3.7.3
  • Anaconda
  • PySimpleGUI 4.18.2

PySimpleGUI

まずはpipによってインストール

pip install pysimplegui

これでOK

作成するもの

今回は初めてなので, 2つの値の入力して, ボタンを押したらその和が表示されるシステムを作りたいと思います.

作成したコードと結果

書いたコードと結果がこちらです.
ほとんど下記のサイトのコードを転載しています.
Tkinterを使うのであればPySimpleGUIを使ってみたらという話

calcGUI.py
#! -*- coding:utf-8 -*-
import PySimpleGUI as sg

sg.theme('DarkAmber') # かっこいいのでテーマはダークにする
# テキストやボタンのレイアウト
layout = [[sg.Text('aとbの和を求めます')],
          [sg.Text('a'),sg.InputText(key='num1')],
          [sg.Text('b'),sg.InputText(key='num2')],
          [sg.Button('計算実行')],]

# ウィンドウを表示
window = sg.Window('window1',layout)

# イベントループ
while True:
    event, values = window.read()
    if event == '計算実行':
        result = float(values['num1'])+float(values['num2'])
        show_message = "答えは"+str(result)+"です。"
        print(show_message)

        sg.popup(show_message)

# ウィンドウを閉じる
window.close()

何故かポップアップを表示させるのにprint(メッセージ文)を書かないとプログラムが動いてくれませんでした.

計算画面

結果表示

ちゃんと計算結果が表示されてます

まとめ

PySimpleGUIの構文は直感的にも理解しやすく、簡単にGUIを作成することができました.
できることがたくさんありそうなので勉強していこうとおもいます.