aki_iic’s blog

己の欲せざる処人に施す事無かれ、狂人の真似するは即ち狂人なり

PySimpleGUI

 過日Xojoで懐古趣味と書いたが現実に目覚めるに使い慣れ使い勝手が良いPythonベースのRADとは言えないが簡易型のGUIフレームワーク(のような物)であるPySimpleGUiに回帰してしまった(ある意味当然の帰結)。

pysimplegui.readthedocs.io

 有難いことにこの数年で日本語情報も増えてGoogleさんにpysimpleguiでサーチすると色々ヒットするのでその辺の情報を摘み食いして超かんたんなGUIフロントエンドのような一画面コードを書いてみた↓

PySimpleGUI

1.仕様

 CUIなmp3プレーヤーの為のGUIフロントエンド(というか画面部分)。本体であるmp3再生は

os.system("mpg123 " + f)

 の一行で完結する(Linux版のmpg123を実行するだけ)。なのでPySimpleGUIはmpg123の引数のmp3ファイル名をGUI的に選択・実行するのが役割。

2.画面

 2.1.起動・実行画面

PySimpleGUI mp3再生画面

 選択ボタンで下記のファイル選択ダイヤログで再生したいmp3ファイルを選択する。再生ボタンで上記mp3プレーヤ(mpg123)を実行する。

2.2.ファイル選択画面

PySimpleGUI ファイル選択画面

ファイル選択ダイヤログ

 有難い事にPySimpleGUIでは

 f=sg.popup_get_file('mp3ファイルを選択')

 の一行で記述出来る(素晴らしい!)。

3.コード

PySimpleGUIを用いた超かんたんなコード(の例)

・ファイル選択:21行目

・mp3再生(ループカウント含む):23〜30行目(mp3再生は29行目)

4.まとめ

 慣れの問題(と嗜好)もあるがブラックボックスが少なく素人臭い画面ではあるがバラバラの部品を組み合わせて目的を実現できるpython糊付け言語が今現在使い勝手の点で優位であると考えている。pythonインタプリタ故の実行速度(とその反面インタプリタ故の試行錯誤のしやすさ)を除けばハードウェアレベルに近い低レベル処理から小物(ツール)からWebアプリケーション(flask,Django等)、データサイエンス系(Jupyter notebook、Pandasなど)と相応に応用分野が広く足掛け八年程触って来た甲斐があろうというもの(と思っています)。