Py
Qtは、
クロスプラットフォームなGUIツールキットである
Qtの
Pythonバインディングです。
PythonでGUIプログラミングを行う際の有力な選択肢の一つであり、PySide、
PyGTK、wx
Python、
Tkinterといった他のGUIツールキットと並び、広く利用されています。
Qtと同様に、Py
Qtもまた自由ソフトウェアとして提供されており、
Pythonの
プラグインとして実装されています。
開発は
イギリスのRiverbank Computing社によって行われ、GPLと商用
ライセンスで提供されています。ただし、LGPL下での提供はされていません。Py
Qtは、Windows、
Linux、macOSといった主要な
オペレーティングシステムをサポートしており、
クロスプラットフォームな開発を容易にします。
Py
Qtは、440の
クラスと6000以上の関数、メソッドを備えており、豊富な機能を提供します。特に、GUIウィジェット、
SQLデータベースアクセス、エディタウィジェット、データ表示、XMLパーサ、SVGサポートといった機能は、多くの開発者にとって不可欠なものです。
PyQtの構成
Py
Qt4は、複数の
Pythonモジュールで構成されており、それぞれが特定の機能を提供しています。
QtCore: イベントループ、
Qtのシグナルとスロット機構、
Unicode、スレッド、マップドファイル、
共有メモリ、
正規表現といった非GUI
クラスが含まれています。プラットフォームに依存しない抽象化を提供します。
QtGui: GUI
クラスを多数含んでおり、
Model View Controller設計パターンに基づいたテーブル、ツリー、リストを提供します。また、高度な2Dキャンパスウィジェットも利用できます。
QtNetwork: UDP、TCPクライアント、サーバを作成するためのモジュールで、FTP、HTTPクライアント、DNSルックアップなどの機能を提供します。
QtOpenGL:
OpenGLを扱うためのモジュールです。
QtSql: オープンソースおよびプロプライエタリな
SQLデータベースを扱うためのモジュールで、GUI
クラスで使用可能なデータモデルを提供します。
QtSvg: SVGファイルを表示するためのモジュールです。
QtXml:
QtのXMLパーサにSAXとDOMインターフェースを実装するモジュールです。
QtMultimedia: マルチメディア機能を実装するためのモジュールで、通常はphononモジュールが利用されます。
QtDesigner: Py
Qtで
Qt Designerを拡張するためのモジュールです。
Qt: 上記すべてのモジュールの
クラスを統合したモジュールで、必要な
クラスがどのモジュールにあるかを気にする必要がなくなります。ただし、アプリケーションのメモリ使用量を増加させる可能性があります。
uic:
Qt Designerで作成されたXMLファイルを扱うモジュールで、XMLファイルの読み込み、表示、
Pythonコード生成を行います。
PyQtとPySide
Qtツールキットの所有者である
ノキアは、
2009年8月にPySideを公開しました。PySideはPy
Qtと同様の機能を持っていますが、LGPL下で公開されている点がPy
Qtと異なります。PySideの公開は、Riverbank Computing社との
ライセンスに関する合意形成がうまくいかなかったことが原因です。
PyQtを利用したソフトウェア
Py
Qtは、多くの著名なソフトウェアで利用されています。以下はその一部です。
Anki: 学習補助ソフトウェア
Eric Python IDE:
Pythonの
統合開発環境
Kodos:
Pythonの
正規表現デバッガ
Orange:
データマイニングとデータ可視化フレームワーク
qt-recordMyDesktop: recordMyDesktopの
Qt版
QGIS:
地理情報システムソフトウェア
Veusz: 科学用途の作図ソフトウェア
Spyder:
Pythonの
統合開発環境
Leo: プログラミング用エディタ
Ninja-IDE:
Pythonの
統合開発環境
Calibre:
電子書籍ソフトウェア
TortoiseHG:
Mercurialのグラフィカルインタフェース
関連項目
PySide
PyGTK
wx
Python
Tkinter
推薦文献
Summerfield, Mark (October 28, 2007), Rapid GUI Programming with
Python and
Qt (Covers Py
Qt4) (1st ed.), Prentice Hall
Rempt, Boudewijn (2002), GUI Programming with
Python: QT Edition (Covers Py
Qt3), OpenDocs
外部リンク
公式ウェブサイト
PyQt5 Tutorial
QtAndPy
KDE'>Py
Qt and Py
KDE community Wiki
PyQt Tutorial
Qt5/tutorials.html'>Tutorials
*
Tutorial