Qt は フィンランドの Qt Group (The Qt Company) が開発する GUI ツールキット(フレームワーク)で、様々な OS 上で利用することができます。ライセンスはオープンソース版と商用版があり、オープンソース版のライセンスは LGPL および GPL です。商用版を購入すると Qt Commercial License の元でソフトウェアを開発し、プロプライエタリなアプリとして配布することができます [1]。
Qt は C++ で記述されていますが、他のプログラミング言語のバインディングも開発されていて、C++ 以外のプログラミング言語から Qt を利用することもできます。もちろん、Python からも Qt を利用することができます。
二つの Python バインディング
Python で Qt を利用するには、PyQt と PySide の二種類のバインディングを利用できます。
PyQt
PyQt はイギリスの Riverbank Computing 社によって開発されている Qt の Python バインディングです。GPL と 商用ライセンスで提供されていますが、LPGL では提供されていません。
PySide
PySide は 2015 年に開発が始まった後発のプロジェクトです。ライセンスは LPGL で配布され、The Qt Company がこのプロジェクトを正式にサポートしています [3]。
どちらを使うか?
PyQt と PySide のどちらプロジェクトも開発か続いています。双方の機能差はさておき、オープンソースのプロジェクトである限り、好きな方を採用すれば良いと思います。しかし、開発した成果を商用利用する場合には少し注意が必要です。ソースコードの開示が、会社の知的財産のポリシーと対立することになる可能性があるからです。PyQt を利用している場合は、商用ライセンスを購入しなければならなくなるかもしれません。
これから Qt を利用するのであれば、ライセンスが緩い LGPL を採用している PySide を使ってみるのが無難です。
オープンソースのライセンスについて、知ったかぶりをして説明するのは間違いの元です。LGPL について簡潔に説明されているサイトを下記に紹介します。
Hello World
念のため Hello World のプログラムで、PySide と PyQt を利用したサンプルを作ってみました。しかし、このように単純なプログラムで違いを確認するには無理があり、インポートするパッケージ名が少々異なる以外は実行結果を含め、差異がありませんでした。
使用した OS は以下の通りです。
Fedora Workstation 33 | x86_64 |
まず、PySide2 を利用した例です。
次が、PyQt5 を利用した例です。
上記、どちらを実行しても同じなのですが、ここでは hello_qt.py を実行した結果を示しました。
今後、Python で Qt を利用したアプリの作成について、特に Linux と Windows を対象にしたパッケージ化について紹介していく予定です。
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿