例付き PyQt5 チュートリアル: Python で PyQt を使用した GUI の設計

PyQtとは何ですか?

PyQt は、オープンソース ウィジェット ツールキット Qt の Python バインディングであり、クロスプラットフォーム アプリケーション開発フレームワークとしても機能します。 Qt は、すべての主要なデスクトップ、モバイル、および組み込みプラットフォーム (Linux、 Windows, MacOS、Android、iOS、Raspberry Piなど)。

PyQt は英国に本拠を置く企業 Riverbank Computing によって開発および保守されているフリー ソフトウェアですが、Qt は The Qt Company というフィンランドの企業によって開発されています。

PyQTの特徴

PyQt の重要な機能は次のとおりです。

次のようなさまざまな機能をカバーする XNUMX 以上のクラスで構成される PyQt を学習します。

  • グラフィカルユーザーインターフェイス
  • SQLデータベース
  • ウェブツールキット
  • XML処理
  • ネットワーキング

これらの機能を組み合わせて、高度な UI やスタンドアロン アプリケーションを作成できます。 あらゆる業界の多くの大手企業が Qt を使用しています。 例としては、LG、メルセデス、AMD、パナソニック、ハーマンなどが挙げられます。

PyQt のバージョン

PyQt には、PyQt4 と PyQt5 の 4 つのエディションがあります。 PyQt4 は Qt フレームワークの 5.x および 5.x バージョンをバインドするためのグルー コードを提供しますが、PyQt5 は 5.x バージョンのみのバインディングを提供します。 結果として、PyQt5 には古いバージョンの非推奨モジュールとの下位互換性がありません。 この Qt GUI チュートリアルでは、例のデモンストレーションに PyQtXNUMX が使用されます。 これら XNUMX つのバージョンとは別に、

Riverbank Computing は、Qt3D フレームワークの Python バインディングである PyQt3D も提供します。 Qt3D は、2D/3D レンダリングを備えたリアルタイム シミュレーション システムを作成するために使用されるアプリケーション フレームワークです。

PyQt5のインストール方法

この PyQt5 チュートリアルでは、PyQt をインストールする XNUMX つの方法について説明します。

  • Wheel ファイルの使用
  • ソースからのビルドとインストール

Qt (キュートと発音) は com ですplex PyQt コードベースには、内部にコンパイルされた C++ および Python コードが含まれています。 その結果、他の Python ライブラリと比較して、ソースからビルドしてインストールするプロセスが複雑になります。 ただし、ホイールを使用して PyQt5 を簡単にインストールできます。

車輪付きの設置

Wheel は、新しい標準の Python パッケージ化および配布形式です。簡単に言うとホイールはZIPです archi特別な名前と .ve が付いています。うーん ファイル拡張子。 ホイールは、pip (Python のパッケージ マネージャー) を使用してインストールできます。これは、Python の最新バージョンにデフォルトで含まれています。

したがって、Python 3.4 または later インストールされている場合は、すでに pip が存在します。ただし、古いバージョンの Python を使用している場合は、先に進む前に pip をダウンロードしてインストールする必要があります。この手順については、次のリンクで検索できます。 https://pypi.org/project/pip/.

PyQt5をインストールするには、

ステップ1) コマンドプロンプトを開きます。
コマンド プロンプトまたは PowerShell を開きます。 Windows 機械。

PyQt5をインストールする

ステップ2) 次のように入力してくださいwing.

 pip install PyQt5

ステップ3) インストールに成功。
この PyQt5 チュートリアルのこのステップでは、PyQt5 whl パッケージ (約 50 MB) をダウンロードし、システムにインストールします。

PyQt5をインストールする

あるいは、 Windows コンピューターにインストールされている Python のバージョンのバイナリ。

完了したら、この PyQt5 チュートリアルの次のセクションに進み、最初の GUI アプリを作成します。

基本的な PyQt の概念とプログラム

PyQt5 がコンピューターに正常にインストールされたので、Python GUI デザイン アプリケーションを作成する準備が整いました。

この PyQt5 チュートリアルでは、画面上に空のウィンドウを表示する単純なアプリから始めましょう。

Python を起動します IDLE 次のように入力しますwing:

プログラム1

import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(300,300)
    w.setWindowTitle("Guru99")
    w.show()
    sys.exit(app.exec_())

それを app.py という名前で保存し (名前は関係ありません)、F5 キーを押してプログラムを実行します。あるいは、単に double 保存したファイルをクリックしてアプリケーションを起動します。すべて正しく行うと、以下に示すように、Guru99 というタイトルの新しいウィンドウが開きます。

PyQt の基本概念

素晴らしい! 機能しています。 それほど多くはありませんが、基本を理解するには十分です。 この PyQt チュートリアルでは、プログラム内の各行が何を行うかを詳しく見てみましょう。

from PyQt5.QtWidgets import QApplication, QWidget

このステートメントは、GUI を作成するために必要なすべてのモジュールを現在の名前空間にインポートします。 QtWidgets モジュールには、この Python Qt チュートリアルで使用するすべての主要なウィジェットが含まれています。

app = QApplication(sys.argv)

ここでは、QApplication クラスのオブジェクトを作成しています。 このステップは PyQt5 では必須です。 すべての UI アプリは、アプリへの一種のエントリ ポイントとして、QApplication のインスタンスを作成する必要があります。 作成しないとエラーが表示されます。

sys.argv は、シェル経由でアプリケーションを起動するとき、またはインターフェイスを自動化するときにアプリケーションに渡すことができるコマンドライン パラメーターのリストです。

この PyQt5 の例では、QApplications に引数を渡しませんでした。 したがって、これを以下のコードに置き換えることもでき、sys モジュールをインポートする必要さえありません。

app = QApplication([])
w = QWidget()

次にQWidgetクラスのオブジェクトを作成します。 QWidget は Qt のすべての UI オブジェクトの基本クラスであり、アプリ内に表示される事実上すべてがウィジェットです。 これには、ダイアログ、テキスト、ボタン、バーなどが含まれます。 comをデザインできる機能plex ユーザー インターフェイスの特徴は、ウィジェットをネストできることです。つまり、ウィジェットの中にウィジェットを配置し、そのウィジェットをさらに別のウィジェットの中に含めることができます。 次のセクションでこれを実際に見ていきます。

w.resize(300,300)

QWidget クラスのsizeメソッドを使用すると、任意のウィジェットの寸法を設定できます。 この場合、ウィンドウのサイズを 300 ピクセル x 300 ピクセルに変更しました。

ここで、ウィジェットはネストすることができ、最も外側のウィジェット (つまり、親のないウィジェット) はウィンドウと呼ばれることを覚えておく必要があります。

w.setWindowTitle("Guru99")

setWindowTitle() メソッドを使用すると、文字列を引数として渡すことができ、ウィンドウのタイトルを渡した文字列に設定します。 PyQt5 の例では、タイトル バーに Guru99 が表示されます。

w.show()

show() は単にウィジェットをモニター画面に表示するだけです。

sys.exit(app.exec_())

app.exec_() メソッドは Qt/C++ イベント ループを開始します。 ご存知のとおり、PyQt は主に C++ で書かれており、イベント ループ メカニズムを使用して並列実行を実装します。 app.exec_() はコントロールを Qt に渡し、ユーザーが GUI からアプリケーションを閉じた場合にのみアプリケーションを終了します。 そのため、他の Python プログラムのように Ctrl+C を押してもアプリケーションは終了しません。 Qt がアプリを制御するため、Python イベントはアプリ内で設定しない限り処理されません。 また、exec メソッドの名前にはアンダースコアが含まれていることにも注意してください。 これは、exec() がすでに Python のキーワードであり、アンダースコアによって名前の競合が解決されるためです。

空を超えて windows

前のセクションでは、Qt で基本的なウィジェットを作成する方法を説明しました。 ここで、ユーザーが実際に対話できる、より複雑なインターフェイスを作成します。 もう一度、火をつけてください IDLE そして次のことを書きますwing.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox

def dialog():
    mbox = QMessageBox()

    mbox.setText("Your allegiance has been noted")
    mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru")
    mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
            
    mbox.exec_()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(300,300)
    w.setWindowTitle("Guru99")
    
    label = QLabel(w)
    label.setText("Behold the Guru, Guru99")
    label.move(100,130)
    label.show()

    btn = QPushButton(w)
    btn.setText('Beheld')
    btn.move(110,150)
    btn.show()
    btn.clicked.connect(dialog)

    
    w.show()
    sys.exit(app.exec_())

ファイルを appone.py または任意の名前で保存し、F5 キーを押してプログラムを実行します。もし、あんたが haven何も間違いを犯していない、 IDLE 以下に示すように、テキストとボタンを含む新しいウィンドウが開きます。

空を超えて Windows

  1. 最初のウィンドウのボタンをクリックすると、新しいメッセージが表示されます box が開いて、作成したテキストが表示されます。
  2. これで、「Hide De」をクリックできるようになります。tails/ショーデtails 追加のテキストの表示を切り替えるボタン。

ご覧のとおり、メッセージにウィンドウ タイトルを設定していなかったので、 box、デフォルトのタイトルは Python 自体によって提供されます。

これで動作するようになったので、前の PyQt5 の例に追加した追加のコードを見てみましょう。

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QMessageBox

これにより、PyQt5 の例で使用したさらにいくつかのウィジェット (QLabel、QPushButton、QMessage) がインポートされます。Box.

def dialog():
    mbox = QMessageBox()

    mbox.setText("Your allegiance has been noted")
    mbox.setDetailedText("You are now a disciple and subject of the all-knowing Guru")
    mbox.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
            
    mbox.exec_()

ここでは、メッセージを作成するダイアログという名前のメソッドを定義しました。 box ウィジェットを作成し、ボタンやその他のフィールドにテキストを設定します。

特定のウィジェット (この場合はボタン PushButton) でボタンが押されると、ダイアログ メソッドがプログラムのメイン ブロックから呼び出されます。 そのボタンでトリガーされたクリック イベントにより、この関数が実行されます。 このような関数は Qt ではスロットと呼ばれます。詳しくは、 信号 > スロット 次の段落で説明します。

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(300,300)
    w.setWindowTitle("Guru99")

これはアプリのメインセクションであり、前の例と同様に、まず QApplication のインスタンスを作成し、続いて単純なウィジェット、つまり QWidget のインスタンスを作成します。

label = QLabel(w)
    btn = QPushButton(w)

このアプリケーションには、QLabel と QPushButton という XNUMX つの新しいウィジェットが追加されました。 QLabel はウィジェット内の編集不可能なテキストまたはプレースホルダーを印刷するために使用され、QPushButton はクリック可能なボタンを作成するために使用されます。

ここで注意すべき重要な点は、label オブジェクトと btn オブジェクトを作成するときに、ウィンドウ オブジェクト (w) を QLabel と QPushButton のコンストラクターに渡していることです。 これは、PyQt5 でのネストの仕組みです。 別のウィジェット内にウィジェットを作成するには、親ウィジェットの参照を子のコンストラクターに渡します。

label.move(100,130)
btn.move(110,150)

move() は、親ウィジェットに対するウィジェットの位置を設定するために使用されます。 最初のケースでは、ラベルはウィンドウの左から 100 ピクセル、上から 130 ピクセル移動します。

同様に、ボタンはウィンドウの左から 110 ピクセル、上から 150 ピクセルの位置に配置されます。 この例はレイアウトを実現するための粗雑な方法であり、通常は運用環境では使用されません。 ここでは学習目的でのみ含まれています。 Qt は、この PyQt チュートリアルの次のセクションで詳しく説明するさまざまなレイアウトをサポートしています。

btn.clicked.connect(dialog)

最後に、これは Qt のシグナルとスロットの例です。 GUI ベースのアプリケーションでは、要素の上にマウスを移動したり、ボタンをクリックしたりするなど、ユーザーが実行したアクションに基づいて機能が実行されます。 これらのアクションはと呼ばれます イベント。 app.exec_() メソッドが制御を Qt に転送することを思い出してください。 イベント-ループ。 イベント ループは、イベントをリッスンし、それに応じてアクションを実行するために存在します。

ユーザーがボタンをクリックするなどのイベントが発生すると、対応する Qt ウィジェットが 信号。 これらの信号を接続できるのは、 Python関数 (この例のダイアログ関数のように) 信号がトリガーされたときに関数が実行されるようにします。 これらの関数は呼び出されます スロット Qt 言語で。

次に、イベントからのシグナルに応答してスロット関数をトリガーする基本的な構文は次のとおりです。

 widget.signal.connect(slot)

つまり、いつでも 信号 によってトリガーされます ウィジェット、接続された スロット 関数が実行されます。 要約すると、シグナルとスロットは、オブジェクト間で通信し、コンポーネントの再利用性と対話性を促進するために Qt によって使用されます。

ウィジェットをネストし、シグナルとスロットを使用してインタラクションを実装する方法がわかったので、ここでは、PyQt アプリで使用できる便利なウィジェットとその他のクラスのリストを示します。

コンポーネントとウィジェット

PyQt には、GUI アプリの作成に使用できるウィジェットが多数あります。 ただし、PyQt5 では、クラスがさまざまなモジュールに再編成され、ライセンスが改訂されました。

したがって、PyQt5 の構造の概要を把握することが重要です。 このセクションでは、PyQt5 が内部でどのように構成されているかを確認し、PyQt5 が提供するさまざまなモジュール、ライブラリ、API クラスについて学びます。

PyQt5 ディレクトリ構造

PyQt5 ディレクトリ構造

これらは、Python の Qt バインディング、特に PyQt5 で使用される基本モジュールです。

  • Qt: 以下で説明するすべてのクラス/モジュールを XNUMX つのモジュールに結合します。 アプリケーションが使用するメモリが大幅に増加します。 ただし、モジュールを XNUMX つインポートするだけでフレームワークを管理する方が簡単です。
  • Qtコア: 他のモジュールで使用されるコアの非グラフィカル クラスが含まれます。 ここに、Qt イベント ループ、シグナル、スロット接続などが実装されます。
  • Qtウィジェット: Pyqt5 で利用可能なほとんどのウィジェットが含まれています。
  • QtGui: GUI コンポーネントが含まれており、QtCore モジュールを拡張します。
  • Qtネットワーク: Qt を介してネットワーク プログラミングを実装するために使用されるクラスが含まれています。 TCP サーバー、TCP ソケット、UDP ソケット、SSL 処理、ネットワーク セッション、および DNS ルックアップをサポートします。
  • Qtマルチメディア 低レベルのマルチメディア機能を提供します。
  • QtSQL: SQL データベースのデータベース統合を実装します。 ODBC、MySQL、 Oracle、SQLite、PostgreSQL。

PyQt5 ウィジェット

PyQt5 で最も頻繁に使用されるウィジェットのリストは次のとおりです。

  • QLine編集: これは、ユーザーが XNUMX 行のテキストを入力できる入力フィールドです。
    line = QLineEdit()
  • Qラジオボタン: これは、HTML のラジオ ボタンに似た、選択可能なボタンを備えた入力フィールドです。
    rad = QRadioButton("button title")
    rad.setChecked(True)  #to select the button by default.
  • QコンボBox: 選択可能な項目のリストを含むドロップダウン メニューを表示するために使用されます。
    drop = QComboBox(w)
    drop.addItems(["item one", "item two", "item three"])
  • QチェックBox:選択可能な四角形を表示します box ラジオ ボタンと同様に、選択するとチェックが入るラベルの前にあります。
    check = QCheckBox("button title")
  • Qメニューバー: ウィンドウの上部に水平メニュー バーを表示します。 このバーには QMenu クラスのオブジェクトのみを追加できます。 これらの QMenu オブジェクトには、さらに文字列、QAction オブジェクト、または他の QMenu オブジェクトを含めることができます。
  • Qツールバー: ウィンドウ内で移動できる水平バーまたはペインです。 ボタンやその他のウィジェットが含まれる場合があります。
  • Qタブ: ウィンドウの内容を複数のページに分割し、ウィジェットの上部にあるさまざまなタブからアクセスできるようにするために使用されます。 これは、タブ バーとタブ ページの XNUMX つのセクションで構成されます。
  • Qスクロールバー: ユーザーがウィンドウ内で上下にスクロールできるようにするスクロール バーを作成するために使用されます。 これは、可動スライダー、スライダー トラック、およびスライダーを上下にスクロールする XNUMX つのボタンで構成されます。
    scroll = QScrollBar()
  • Qスプリッター: スプリッターは、ウィジェットが適切にグループ化され、乱雑に表示されないように、ウィンドウのコンテンツを分離するために使用されます。 QSplitter は、PyQt5 で使用できる主要なレイアウト ハンドラーの XNUMX つで、コンテンツを水平方向と垂直方向の両方に分割するために使用されます。
  • Qドック: ドック ウィジェットは、次の XNUMX つのプロパティを持つサブウィンドウです。
  • メインウィンドウ内で移動できます。
  • 親ウィンドウの外側の画面上の別の場所にドッキングできます。

レイアウトとテーマ

前の PyQt5 の例では、GUI 内のウィジェットの位置を設定するために move() メソッドとsize() メソッドのみを使用していました。

ただし、PyQt には、アプリケーションの高度なユーザー インターフェイスの作成に使用できる堅牢なレイアウト管理エンジンがあります。 このセクションでは、Qt でレイアウトの作成と管理に使用される XNUMX つの重要なクラスについて学びます。

  1. QBoxレイアウト
  2. QGridLayout

QBoxレイアウト

QBoxレイアウトは、レイアウトの子ウィジェットを水平または垂直の行に配置するために使用されます。 Q から継承する XNUMX つの対象クラスBoxレイアウトは次のとおりです。

  • QHBoxレイアウト: 子ウィジェットを水平に並べるために使用されます。
  • QVBoxレイアウト: 子ウィジェットを垂直に並べるために使用されます。

たとえば、QH に XNUMX つのボタンを並べると、次のようになります。Boxレイアウトが見えてきます。

QBoxレイアウト

import sys
from PyQt5.QtWidgets import *

if __name__ == "__main__":

    app = QApplication([])
    w = QWidget()
    w.setWindowTitle("Musketeers")

    btn1 = QPushButton("Athos")
    btn2 = QPushButton("Porthos")
    btn3 = QPushButton("Aramis")

    hbox = QHBoxLayout(w)

    hbox.addWidget(btn1)
    hbox.addWidget(btn2)
    hbox.addWidget(btn3)

    w.show()

    sys.exit(app.exec_())

QV ではこのように表示されますBoxレイアウト。

QBoxレイアウト

import sys
from PyQt5.QtWidgets import *

if __name__ == "__main__":

    app = QApplication([])
    w = QWidget()
    w.setWindowTitle("Musketeers")

    btn1 = QPushButton("Athos")
    btn2 = QPushButton("Porthos")
    btn3 = QPushButton("Aramis")

    vb = QVBoxLayout(w)

    vb.addWidget(btn1)
    vb.addWidget(btn2)
    vb.addWidget(btn3)

    w.show()

    sys.exit(app.exec_())

この時点で説明が必要な唯一の関数は、addWidget() メソッドです。 H にウィジェットを挿入するために使用されます。Box またはVBox レイアウト。 次のセクションで説明するように、異なる数のパラメータを取る他のレイアウトでも使用されます。 ウィジェットは、挿入した順序でレイアウト内に表示されます。

QGridLayout

QGridLayout は、ウィジェットがグリッド (行列や 2D 配列など) の形式でレイアウトされるインターフェイスを作成するために使用されます。 グリッド レイアウトに要素を挿入するには、行列表現を使用して、グリッド内の行と列の数、およびそれらの要素の位置を定義できます。

たとえば、3*3 グリッド (つまり、XNUMX 行 XNUMX 列のグリッド) を作成するには、次のように記述します。wing コー​​ド:

Import sys
from PyQt5.QtWidgets import *

if __name__ == "__main__":
    app = QApplication([])

    w = QWidget()

    grid = QGridLayout(w)

    for i in range(3):
        for j in range(3):
            grid.addWidget(QPushButton("Button"),i,j)


    w.show()
    sys.exit(app.exec_())

これが出力になります:

QGridLayout

グリッド レイアウトの addWidget() メソッドは次の引数を受け取ります。

  • グリッドに追加するウィジェット オブジェクト
  • オブジェクトの x 座標
  • オブジェクトの y 座標
  • 行範囲 (デフォルト =0)
  • 列スパン (デフォルト = 0)

よりよく理解するには、以下に示すように各ウィジェットを手動で挿入します。

import sys
from PyQt5.QtWidgets import *

if __name__ == "__main__":
    app = QApplication([])

    w = QWidget()

    grid = QGridLayout(w)
    grid.addWidget(QPushButton("Button one"),0,0)
    grid.addWidget(QPushButton("Button two"),0,1)
    grid.addWidget(QPushButton("Button three"),1,0)
    grid.addWidget(QPushButton("Button four"),1,1)


    w.show()
    sys.exit(app.exec_())

グリッドは次のようになります。

QGridLayout

複数の行または列にまたがるには、rowspan パラメーターと Colspan パラメーターを addWidget() に渡すこともできます。

たとえば、

grid.addWidget(QPushButton("Button five"),2,0,1,0)

これにより、両方の列にまたがるボタンが作成されます。

QGridLayout

テーマ

PyQt5 には、アプリで使用できるいくつかの組み込みテーマが付属しています。 の setStyle() QApplication インスタンスで呼び出されるメソッドは、アプリケーションに特定のテーマを設定するために使用されます。

たとえば、次のように追加しますwing コード行により、アプリケーションのテーマがデフォルトから Fusion に変更されます

app.setStyle("Fusion")

これは、前の例が Fusion テーマでどのように表示されるかです。

テーマ

アプリのテーマを設定するためのもう XNUMX つの便利な関数は、setPalette() メソッドです。 setPalette() を使用してさまざまなウィジェットの色を変更するコードを次に示します。

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPalette

if __name__ == "__main__":
    app = QApplication([])
    app.setStyle("Fusion")
    
    qp = QPalette()
    qp.setColor(QPalette.ButtonText, Qt.black)
    qp.setColor(QPalette.Window, Qt.black)
    qp.setColor(QPalette.Button, Qt.gray)
    app.setPalette(qp)

    w = QWidget()

    grid = QGridLayout(w)
    grid.addWidget(QPushButton("Button one"),0,0)
    grid.addWidget(QPushButton("Button two"),0,1)
    grid.addWidget(QPushButton("Button three"),1,0)
    grid.addWidget(QPushButton("Button four"),1,1)


    w.show()
    sys.exit(app.exec_())

結果は次のとおりです。

テーマ

setPalette() メソッドを使用するには、まずパレットを定義する必要があります。 これは、QPalette クラスのオブジェクトを作成することによって行われます。

 qp = QPalette()

QPalette クラスは QtGui モジュールに属しており、これが機能するにはそれをインポートする必要があることに注意してください。 QPalette オブジェクトを作成したら、setColor() メソッドを使用して、色を変更するウィジェットの名前と設定したい色を渡します。

 qp.setColor(QPalette.Window, Qt.black)

これにより、ウィンドウの色が黒に変わります。 カラースキームを定義したら、setPalette() 関数を使用してパレットをアプリケーションに適用します。

app.setPalette(qp)

アプリの基本的なテーマを作成する場合に行う必要があるのはこれだけです。 PyQt では、スタイルシートを使用してウィジェットの外観を定義することもできます。 CSS に精通している場合は、Qt スタイル シートを使用してアプリの高度なスタイルを簡単に定義できます。

まとめ

  • PyQt は、C++ UI フレームワーク Qt の Python バインディングです。
  • PyQt4 と PyQt5 は、Riverbank Computing によって開発された XNUMX つの主要なバージョンです。
  • PyQt フレームワークの主なモジュールは次のとおりです。
    1. Qt
    2. Qtコア
    3. Qtウィジェット
    4. QtGui
    5. QtSQL
    6. Qtネットワーク
  • PyQt は次のようなさまざまなウィジェットをサポートしています。
    1. ボタン
    2. テキストラベル
    3. テキストフィールド
    4. ラジオボタンとチェックboxes
    5. ツールバーとメニューバー
    6. ウェブキット
    7. タブ
    8. ドック
  • PyQt では、対話性は次を使用して実装されます。 信号 > スロット。
  • An イベント GUI でユーザーが実行するアクション (ボタンのクリックなど) です。
  • A 信号 イベントが発生すると、対応するウィジェットによって発生します。
  • A スロット はシグナルに接続され、シグナルが発生したときに実行される関数です。
  • PyQt は堅牢なレイアウト エンジンを備えており、高度なレイアウト設計と管理をサポートします。 これらは、PyQt で頻繁に使用される XNUMX つのレイアウト スキームです。
    1. Box レイアウト
    2. グリッドレイアウト
  • PyQt デザイナーを使用すると、GUI アプリケーションのカスタム テーマを作成でき、スタイル シートのサポートが組み込まれています。
  • Qt Creator Python は、ユーザー インターフェイスやスタンドアロン アプリケーションの作成に使用できます。