3
10

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 3 years have passed since last update.

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

Posted at

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(メッセージ文)を書かないとプログラムが動いてくれませんでした.

計算画面
result1.png

結果表示
result2.png

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

まとめ

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

3
10
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
3
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?