2021/12/11(土) [n年前の日記]
#1 [python] PySimpleGUIQt と PySimpleGUIWx を少し試用
PySimpleGUI は tkinter のラッパーだけど、tkinter を使っているのでドラッグアンドドロップ(DnD, D&D)ができないわけで。PySimpleGUIQt は Qt (PySide2) のラッパーなのでD&Dもできる、という話を見かけたので少し試用してみた。ついでに、wxWidgets、wxPython のラッパーらしい PySimpleGUIWx も試用してみた。
環境は Windows10 x64 21H1 + Python 3.9.9 x64。
さておき、PySimpleGUIQt を使う場合、import PySimpleGUI を import PySimpleGUIQt にするだけでいいらしい。PySimpleGUIWx も同様。
PySImpleGUIQt を利用した場合、InputText や Multiline 上で、ファイルのD&D(DnD)が使えることを確認できた。しかし、ウインドウが表示されるまでの時間が、目に見えて遅くなった…。
PySimpleGUIWx を利用した場合は、D&Dが使えなかった。ただ、PySImpleGUIWx を使うと、PySimpleGUIQt と比べて、exe化した際に全体のファイル容量を小さくすることができるらしい。wxPython (wxWidgets) はネイティブなウィジェットを利用しているらしいので、各ウィジェットの描画を自前で行っている Qt (PySide2) より必要なファイルサイズが少なくて済むのだろう…。また、ウインドウが表示されるまでの時間も、PySimpleGUIQt より体感で早く感じた。
もっとも、現状では、PySimpleGUI系でD&Dをしたければ PySimpleGUIQt を選ぶ以外にない、ということになりそうだなと…。
ちなみに、wxPython を使う分には、D&Dも利用できる。どうして PySimpleGUIWx は対応しなかったのだろう?
_画面上にファイルをドラッグ&ドロップすると、ファイル名が表示されるようなアプリケーションの実装 - 理想のユーザ・インターフェイスを求めて
_mieki256's diary - Python + PySide、wxPythonでファイルのドラッグアンドドロップ
環境は Windows10 x64 21H1 + Python 3.9.9 x64。
pip install PySimpleGUIQt pip install PySimpleGUIWx
> pip list | grep PySimpleGUI PySimpleGUI 4.55.1 PySimpleGUIQt 0.35.0 PySimpleGUIWx 0.17.2
- PySImpleGUIQt を利用するには PySide2 が必要。
- PySimpleGUIWx を利用するには wxPython が必要。
さておき、PySimpleGUIQt を使う場合、import PySimpleGUI を import PySimpleGUIQt にするだけでいいらしい。PySimpleGUIWx も同様。
PySImpleGUIQt を利用した場合、InputText や Multiline 上で、ファイルのD&D(DnD)が使えることを確認できた。しかし、ウインドウが表示されるまでの時間が、目に見えて遅くなった…。
PySimpleGUIWx を利用した場合は、D&Dが使えなかった。ただ、PySImpleGUIWx を使うと、PySimpleGUIQt と比べて、exe化した際に全体のファイル容量を小さくすることができるらしい。wxPython (wxWidgets) はネイティブなウィジェットを利用しているらしいので、各ウィジェットの描画を自前で行っている Qt (PySide2) より必要なファイルサイズが少なくて済むのだろう…。また、ウインドウが表示されるまでの時間も、PySimpleGUIQt より体感で早く感じた。
もっとも、現状では、PySimpleGUI系でD&Dをしたければ PySimpleGUIQt を選ぶ以外にない、ということになりそうだなと…。
ちなみに、wxPython を使う分には、D&Dも利用できる。どうして PySimpleGUIWx は対応しなかったのだろう?
_画面上にファイルをドラッグ&ドロップすると、ファイル名が表示されるようなアプリケーションの実装 - 理想のユーザ・インターフェイスを求めて
_mieki256's diary - Python + PySide、wxPythonでファイルのドラッグアンドドロップ
[ ツッコむ ]
以上、1 日分です。