PyQt

PyQtとは



PyQtは、クロスプラットフォームなGUIツールキットであるQtPythonバインディングです。PythonでGUIプログラミングを行う際の有力な選択肢の一つであり、PySide、PyGTK、wxPython、Tkinterといった他のGUIツールキットと並び、広く利用されています。Qtと同様に、PyQtもまた自由ソフトウェアとして提供されており、Pythonプラグインとして実装されています。

開発はイギリスのRiverbank Computing社によって行われ、GPLと商用ライセンスで提供されています。ただし、LGPL下での提供はされていません。PyQtは、Windows、Linux、macOSといった主要なオペレーティングシステムをサポートしており、クロスプラットフォームな開発を容易にします。

PyQtは、440のクラスと6000以上の関数、メソッドを備えており、豊富な機能を提供します。特に、GUIウィジェット、SQLデータベースアクセス、エディタウィジェット、データ表示、XMLパーサ、SVGサポートといった機能は、多くの開発者にとって不可欠なものです。

PyQtの構成



PyQt4は、複数の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: PyQtQt Designerを拡張するためのモジュールです。
Qt: 上記すべてのモジュールのクラスを統合したモジュールで、必要なクラスがどのモジュールにあるかを気にする必要がなくなります。ただし、アプリケーションのメモリ使用量を増加させる可能性があります。
uic: Qt Designerで作成されたXMLファイルを扱うモジュールで、XMLファイルの読み込み、表示、Pythonコード生成を行います。

PyQtとPySide



Qtツールキットの所有者であるノキアは、2009年8月にPySideを公開しました。PySideはPyQtと同様の機能を持っていますが、LGPL下で公開されている点がPyQtと異なります。PySideの公開は、Riverbank Computing社とのライセンスに関する合意形成がうまくいかなかったことが原因です。

PyQtを利用したソフトウェア



PyQtは、多くの著名なソフトウェアで利用されています。以下はその一部です。

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
wxPython
Tkinter

推薦文献



Summerfield, Mark (October 28, 2007), Rapid GUI Programming with Python and Qt (Covers PyQt4) (1st ed.), Prentice Hall
Rempt, Boudewijn (2002), GUI Programming with Python: QT Edition (Covers PyQt3), OpenDocs

外部リンク



公式ウェブサイト
PyQt5 Tutorial
QtAndPyKDE'>PyQt and PyKDE community Wiki
PyQt Tutorial
Qt5/tutorials.html'>Tutorials
* Tutorial

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。