PyQt
Qt Designer
開発元 Riverbank Computing
最新版
6.10.2 / 2026年1月8日 (5か月前) (2026-01-08)[1]
プログラミング
言語
C++/Python[2]
対応OS クロスプラットフォーム
ライセンス GNU GPL and commercial
公式サイト riverbankcomputing.com
テンプレートを表示

PyQtは、クロスプラットフォームGUIツールキットであるQtPythonバインディングにして、PythonでGUIプログラミングをするときの選択肢の一つである。PyQtの他には、PySidePyGTKwxPythonTkinterなどのGUIツールキットが存在する。Qtと同様にPyQtは自由ソフトウェアである。PyQtはPythonのプラグインとして実装されている。

PyQtはイギリスRiverbank Computing社によって開発されており、GPLと商用ライセンスで提供されているが、LGPLの下では提供されていない[3]。PyQtはクロスプラットフォームなツールキットであり、WindowsLinuxmacOSなどをサポートしている[4]

PyQtは440のクラスと6000以上の関数とメソッドを持つ。代表的なものは以下のとおりである[5]

  • 充実したGUIウィジェット
  • SQLデータベース (ODBC, MySQL, PostgreSQL, Oracle Database) にアクセスするためのクラス
  • QScintillaとScintillaをベースとしたエディタウィジェット
  • 自動的にデータベースからデータを取り込みウィジェットに表示
  • XMLのパーサ
  • SVGのサポート
  • Windows上でのActiveXのためのクラス(商用バージョンのみ[6])

自動的にこれらのバインディングを生成するため、フィル・トンプソンは他のプロジェクトでも使用されるSIPというツールを開発した。

Qtツールキットの所有者であるノキアは、2009年8月にPySideを公開した。PySideはPyQtと同じ機能を持つが、LGPLの下で公開されているという点でPyQtと異なっている[7]。PySideが公開されたのは、Riverbank Computing社とのライセンスに関する合意形成に失敗したためである[8]

PyQtの別のロゴ

PyQtの構成

編集

PyQt4は次のPythonモジュールを含んでいる。

QtCore
イベントループとQtのシグナルとスロット機構を備えた非GUIクラスを含んでいる。このモジュールは、プラットホームに依存しないようにUnicodeスレッドマップドファイル共有メモリ正規表現などを抽象化する。
QtGui
多くのGUIクラスを含んでいる。これらのクラスはModel View Controller設計パターンに基づいた、たくさんのテーブル・ツリー・リストを含んでいる。また、何千ものアイテムを格納できる、洗練された2Dキャンパスウィジェットを提供する。
QtNetwork
UDPTCPクライアントとサーバを作成するためのモジュールである。このモジュールはFTPの実装・HTTPクライアント・DNSルックアップのためのクラスを含んでいる。ネットワークアプリケーションが簡単に開発できるように作成されている。
QtOpenGL
OpenGLを扱うためのモジュールである。
QtSql
オープンソースでプロプライエタリSQLデータベースを扱うためのモジュールである。これはGUIクラスで使用できるデータベーステーブル用の編集可能なデータモデルを含んでいる。また、SQLiteの実装も含んでいる。
QtSvg
SVGファイルを表示するためのモジュールである。
QtXml
QtのXMLパーサにSAXDOMのインターフェースを実装するモジュールである。
QtMultimedia
低レベルでマルチメディア機能を実装するためのモジュールである。ソフトウェア開発者は普通phononモジュールを使う。
QtDesigner
PyQtを用いてQt Designerを拡張するためのモジュールである。
Qt
一つのモジュールに上記すべてのモジュールに含まれるクラスを統合する。このため、Qtモジュールを読み込んでおけば、あるクラスが含まれているかどうかを心配する必要がなくなる。しかし、一つのモジュールに統合することで、アプリケーションのメモリ使用量を増加させる、Qtフレームワーク全体を読み込まなければならないなどの欠点が生じる。この統合されたモジュールを使用するか、個々のモジュールを使用するかは個人の好みになる。
uic
Qt Designerで作られた、XMLファイルを扱うためのモジュールである。これは、XMLファイルの読み込み・表示機能や、後に実行するためにXMLファイルからPythonコードを生成するクラスが含まれている[4]

Hello World

編集
KDE Plasma 4での実行結果
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Here we provide the necessary imports.
# The basic GUI widgets are located in QtGui module. 
import sys
from PyQt4.QtGui import *

# Every PyQt4 application must create an application object.
# The application object is located in the QtGui module.
a = QApplication(sys.argv)

# The QWidget widget is the base class of all user interface objects in PyQt4.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window. 
w = QWidget()

w.resize(320, 240)  # The resize() method resizes the widget.
w.setWindowTitle("Hello, World!")  # Here we set the title for our window.
w.show()  # The show() method displays the widget on the screen.

sys.exit(a.exec_())  # Finally, we enter the mainloop of the application.

PyQtを用いたソフトウェア

編集

関連項目

編集

出典

編集
  1. ^ https://www.riverbankcomputing.com/news
  2. ^ PyQt4 Download”. Riverbankcomputing (2010年). 2010年4月19日閲覧。
  3. ^ Riverbank | Software | PyQt | License”. Riverbankcomputing.co.uk. 2009年9月3日閲覧。
  4. ^ a b Riverbank | Software | PyQt | What is PyQt?”. Riverbankcomputing.co.uk. 2010年4月15日閲覧。
  5. ^ PyQt v4 - Python Bindings for Qt v4”. Riverbankcomputing. 2010年4月17日閲覧。
  6. ^ PythonInfo Wiki
  7. ^ PySide has been released – PySide – Python for Qt”. Pyside.org (2009年8月18日). 2009年9月3日閲覧。
  8. ^ FAQ – PySide – Python for Qt”. Pyside.org. 2009年9月3日閲覧。

推薦文献

編集
  • Summerfield, Mark (October 28, 2007), Rapid GUI Programming with Python and Qt (Covers PyQt4) (1st ed.), Prentice Hall, pp. 648, ISBN 978-0-13-235418-9, http://www.qtrac.eu/pyqtbook.html 
  • Rempt, Boudewijn (2002), GUI Programming with Python: QT Edition (Covers PyQt3), OpenDocs, http://www.commandprompt.com/community/pyqt/ 

外部リンク

編集

📚 Artikel Terkait di Wikipedia

Abstract Window Toolkit

ンド・ドロップを使用するデータ転送パッケージ、マウスやキーボードのような入力デバイスインタフェースをも提供する。 Swing Standard Widget Toolkit ImageJ AWTを利用している有名な画像解析ソフト。医療、天文分野で利用が多い。 ウィキブックスにJava関連の解説書・教科書があります。

ZIP (ファイルフォーマット)

wgt W3C Packaged Web Apps (W3C Widgets) のパッケージファイル。Bada widget、Tizen Web application、Opera widget など。 wsz Winamp用のスキンファイル wmz Windows Media Player用のスキンファイル

Eclipse (統合開発環境)

(Abstract Window Toolkit) を使用せず、Eclipse独自のGUIツールキットであるSWT (Standard Widget Toolkit) を採用していることで得られている。 SWTの位置づけはSwingではなくAWTに対応するが、AWTとSWTの違いは、AWTがオペレーティングシステム

GTK (ツールキット)

GtkWidgetによって記述されたシグナルハンドラーからのイベント処理は、イベントコントローラーに委任される。 レンダリングは、GtkSnapshotオブジェクトに委任される。 レイアウトメカニズムは、GtkWidgetからGtkLayoutManagerに委任される。

ハードディスクドライブの歴史

(裸の)ドライブを通販などで購入して、システムへ直接組み込むという潮流の始まりともなった。1つの興味深い例外はApple Computerが1984年に発表した10MBの"widget"独自HDDだが、1年後にはLisaと共に販売停止となった。 外付けのハードディスクドライブは、長年にわたり多くのプラットフォームで人気を保った

ジョン・ロメロ

ーとともに、ロメロはGazillionの共同創設者であった。2006年7月22日、ジョン・ロメロと元同僚のトム・ホールがポッドキャスト『The Widget』のエピソード53をゲストホストした。ロメロは2010年11月にGazillion Entertainmentを退社し、ブレンダ・ブラスウェイト

Javaの性能

ジェット・ツールキットと比較して低速であるとされてきた。しかし、SwingとOSのネイティブGUIライブラリに描画処理を任せるStandard Widget Toolkitをベンチマークで比較しても、片方が明確に速いわけではなく、結果はコンテキストや環境に大きく依存した。 いくつかの独立した研究によれば、高性能計算

Alphabetによる合併と買収の一覧

Graphics library アメリカ合衆国 — Skia 20 000000002005-12-27-00002005年12月27日 Phatbits Widget engine アメリカ合衆国 — Google Desktop 21 000000002005-12-31-00002005年12月31日 allPAY