|
PyQtは、クロスプラットフォームなGUIツールキットであるQtのPythonバインディングにして、PythonでGUIプログラミングをするときの選択肢の一つである。PyQtの他には、PySide・PyGTK・wxPython・TkinterなどのGUIツールキットが存在する。Qtと同様にPyQtはフリーソフトウェアである。PyQtはPythonのプラグインとして実装されている。 PyQtはイギリスの''Riverbank Computing''社によって開発されており、GPLと商用ライセンスで提供されているが、LGPLの下では提供されていない。PyQtはクロスプラットフォームなツールキットであり、Windows・Linux・OS Xなどをサポートしている。 PyQtは440のクラスと6000以上の関数とメソッドを持つ。代表的なものは以下のとおりである。 * 充実したGUIウィジェット * SQLデータベース(ODBC, MySQL, PostgreSQL, Oracle Database)にアクセスするためのクラス * QScintillaとScintillaをベースとしたエディタウィジェット * 自動的にデータベースからデータを取り込みウィジェットに表示 * XMLのパーサ * SVGのサポート * Windows上でのActiveXのためのクラス(商用バージョンのみ〔PythonInfo Wiki 〕) 自動的にこれらのバインディングを生成するため、フィル・トンプソンは他のプロジェクトでも使用されるSIPというツールを開発した。 Qtツールキットの所有者であるNokiaは、2009年8月にPySideを公開した。PySideはPyQtと同じ機能を持つが、LGPLの下で公開されているという点でPyQtと異なっている。PySideが公開されたのは、''Riverbank Computing''社とのライセンスに関する合意形成に失敗したためである。 == PyQtの構成 == PyQt4は次のPythonモジュールを含んでいる。 * QtCoreモジュールは、イベントループとQtのシグナルとスロット機構を備えた非GUIクラスを含んでいる。このモジュールは、プラットホームに依存しないようにUnicode・スレッド・マップドファイル・共有メモリ・正規表現などを抽象化する。 * QtGuiモジュールは多くのGUIクラスを含んでいる。これらのクラスはModel View Controller設計パターンに基づいた、たくさんのテーブル・ツリー・リストを含んでいる。また、何千ものアイテムを格納できる、洗練された2Dキャンパスウィジェットを提供する。 * QtNetworkはUDP・TCPクライアントとサーバを作成するためのモジュールである。このモジュールはFTPの実装・HTTPクライアント・DNSルックアップのためのクラスを含んでいる。ネットワークアプリケーションが簡単に開発できるように作成されている。 * QtOpenGLはOpenGLを扱うためのモジュールである。 * QtSqlはオープンソースでプロプライエタリなSQLデータベースを扱うためのモジュールである。これはGUIクラスで使用できるデータベーステーブル用の編集可能なデータモデルを含んでいる。また、SQLiteの実装も含んでいる。 * QtSvgはSVGファイルを表示するためのモジュールである。 * QtXmlはQtのXMLパーサにSAXとDOMのインターフェースを実装するモジュールである。 * QtMultimediaは低レベルでマルチメディア機能を実装するためのモジュールである。ソフトウェア開発者は普通phononモジュールを使う。 * QtDesignerはPyQtを用いてQt Designerを拡張するためのモジュールである。 * Qtモジュールは一つのモジュールに上記すべてのモジュールに含まれるクラスを統合する。このため、Qtモジュールを読み込んでおけば、あるクラスが含まれているかどうかを心配する必要がなくなる。しかし、一つのモジュールに統合することで、アプリケーションのメモリ使用量を増加させる、Qtフレームワーク全体を読み込まなければならないなどの欠点が生じる。この統合されたモジュールを使用するか、個々のモジュールを使用するかは個人の好みになる。 * uicモジュールはQt Designerで作られた、XMLファイルを扱うためのモジュールである。これは、XMLファイルの読み込み・表示機能や、後に実行するためにXMLファイルからPythonコードを生成するクラスが含まれている〔。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「PyQt」の詳細全文を読む スポンサード リンク
|