LoginSignup
8
9

More than 3 years have passed since last update.

Python Gui

Posted at

初めに

 Pythonによるローカル動作のソフトウェアにおいて、GUI実装には主に3つのライブラリにて実装される場合が多い。

  • Qt
  • wxWidgets(wxPython)
  • Tkinter

あと、そもそもwebアプリケーション的に作成し、GUIはWebブラウザ側にお願いするという方法もある。そうなると、以下のライブラリが考えられる。

  • Django
  • Flask

Djangoは機能が多く、ローカル動作のソフトウェアで使用するには不要であると考えるため、今回はFlaskに絞る。

Qt

 QtはC++で実装されたオープンソースである。Pythonによる使用には主に以下のライブラリを使用することが多い。
PyQtの場合は、ネット上の情報量も多く、使用しているエンジニア人口も多い。

  • PyQt
  • pyside

 QtはGPL、LGPL、商用ライセンスの3つが提供されている。PyQtはGPL、pysideはLGPLで提供され、それぞれに商用ライセンスがある。
商用ライセンスを使用しなくても、GPLおよびLGPLは特に商用利用を禁止していないが、GPLはソースコードの公開義務があるため、製品に採用するのは難しい。商用ライセンスは約●●万円であるため、引き合いが多くないとうま味はない。

wxWidgets

 wxWidgetsは、プラットフォーム依存しないライブラリである。フォームをOS内蔵のものを使用するため、ソースコードの使いまわしが可能である。
また、「WxFormBuilder」を使用すると、ドラッグ&ドロップにてGUIを作成でき、実装工数が削減できる。しかし、作成には癖があり、それに対する情報も少ないため、一度ハマると抜け出すのが難しい。

Tkinter

 Tkinterはpython標準に入っているGUI用ライブラリである。基本的には表のようにGUIを作成するようで、比較的プログラミングしやすい。他と違ってドラッグ&ドロップでGUIを作成する支援ソフトはないが、ハマるポイントも少ないから工数がむやみに増えない。デザインを気にする必要がなければ採用すると良い。

Flask

 これはwebアプリケーション用のフレームワークである。デザインに重きを置いた場合、Web系の方がかっこいいので、こちらを採用した方ばいい。GUIサイドはJavascript実装になることが考えられるため、必要な知識は多いが、フレームワークを上手く使えば工数削減に繋がる。ネットワークに繋がっていること前提であればCDNでライブラリを引っ張っても良い。jinjaテンプレートを使っても良いが、可能であればGUI側はJavascriptで記載した方が管理上ごちゃごちゃしない。

8
9
1

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
8
9