mieki256's diary



2025/12/05(金) [n年前の日記]

#1 [python] EasyGUIを試用

Python + EasyGUIを使うと、簡単にGUIで入力ダイアログが作れるらしい。開発停止状態という話も見かけたけれど…。まあ、使えるうちは使ってもいいのではないか…。Windows11 x64 25H2 + Python 3.10.10 64bit で動作確認してみた。

インストールは以下。
pip install easygui

ググって目にしたサンプルをコピペして動作確認した。

"""
EasyGUI sample

Windows11 x64 25H2 + Python 3.10.10 64bit
"""

import easygui

easygui.msgbox("Hello EasyGUI")

name = easygui.enterbox("あなたの名前を入力してください。", default="guest")

easygui.msgbox(f"あなたの名前は {name} です。")

if easygui.ynbox("18歳以上ですか?"):
    easygui.msgbox("あなたは18歳以上です。")
else:
    easygui.msgbox("あなたは18歳未満です。")

filename = easygui.fileopenbox("ファイルを選択してください")
if filename:
    easygui.msgbox(f"選択したファイルは {filename}")

EasyGUI_Qtについて :

EasyGUI_Qt というものもあるらしい。EasyGUI は tkinter で各ダイアログを表示しているが、EasyGUI_Qt は Qt で表示している。

_easygui_qt - PyPI
_aroberge/easygui_qt: Inspired by easygui, designed for PyQt
_EasyGUI_Qt - easygui_qt 0.9.2 documentation

先に書いておくけれど、このモジュールは使わないほうがいい。理由は後述する。一応アレコレ調べたのでメモだけはしておく。

PyQt4 か PyQt5 が必要になるらしい。PyQt5 なら PyPI からインストールできるが、ファイルダイアログの表示ができなかった。PyQt4 なら動くのかもしれないが、PyPI からインストールできないらしい。とりあえず PyQt5 をインストールして試用してみる。

pip install easygui_qt
pip install PyQt5

easgui_qt 0.9.3 と、PyQt5-5.15.11, PyQt5-Qt5-5.15.2, PyQt5-sip-12.17.1 がインストールされた。

デモプログラムも入っているらしい。IDLE上で以下を打てば表示される。
from easygui_qt.demos import launcher
launcher.main()


EasyGUI_Qt は EasyGUI と各関数名が異なっている。Pythonの命名規則に合わせてみたとのこと。
  • msgbox() -> show_message()
  • ynbox() -> get_yes_or_no()
  • enterbox() -> get_string()

以下のページで、各関数名の対応が表で示されている。

_Comparison with easygui - easygui_qt 0.9.2 documentation


しかし…。使えそうかどうか試していたら、get_file_names() でファイルダイアログを開こうとするとエラーが出ることに気づいた。

情報を探していたら…。

_error message in get_file_names - Issue #35 - aroberge/easygui_qt

自動翻訳を引用しておく。
このプロジェクトは4年近く更新していません。前回作業した時は、 #20 で述べたようにQtバージョン4を使用していました。あなたはQtバージョン5(バージョン4はおそらく廃止されているでしょう)をお使いなので、互換性に問題があっても不思議ではありません。

残念ながら、このプロジェクトに取り組む時間がもうありません。他の方がフォーク(またはプルリクエスト)して、Qtの新しいバージョンと互換性を持たせたい場合に備えて、このプロジェクトはオープンのままにしておきます。

PyQt5への対応が十分にできないまま開発停止状態になっていた。使わないほうが良さそう。

しかし、PyQt5 に対応させた版を作成した方も居る模様。

_cs20-easygui - PyPI
_schellenberg/easygui_qt: Inspired by easygui, designed for PyQt

以下でインストールできる。EasyGUI_Qt はアンインストールしておいたほうがいいだろうな…。
pip uninstall easygui_qt
pip install cs20-easygui
Successfully installed cs20-easygui-0.9.5 packaging-25.0 setuptools-80.9.0 sip-6.14.0

この版ならエラーは出ない。また、複数のファイルを選択できる get_file_names() 以外にも、ファイルを1つだけ選択できる get_file_name() も用意されていた。

でもまあ、EasyGUI を使ったほうがいいだろうな…。EasyGUI なら PyQt5 のインストールも不要だし…。

一応サンプルもメモ。

"""
EasyGUI_Qt sample

Windows11 x64 25H2 + Python 3.10.10 64bit
"""

import easygui_qt

easygui_qt.show_message("Hello EasyGUI_Qt", "Title")

name = easygui_qt.get_string("名前を入力してください", "Title", "guest")

easygui_qt.show_message(f"あなたの名前は {name} です。")

if easygui_qt.get_yes_or_no("あなたは18歳以上ですか?"):
    easygui_qt.show_message("あなたは18歳以上です。")
else:
    easygui_qt.show_message("あなたは18歳未満です。")

filename = easygui_qt.get_file_names()
if filename:
    easygui_qt.show_message(f"選択したファイル : \n{filename}")

以上、1 日分です。

過去ログ表示

Prev - 2025/12 -
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project