PyQt5チュートリアルと例: PyQtを使用してGUIを設計する Python

PyQtとは何ですか?

PyQt オープンソースのウィジェットツールキットQtのPythonバインディングであり、クロスプラットフォームアプリケーション開発フレームワークとしても機能します。Qtは人気のある C++ すべての主要なデスクトップ、モバイル、組み込みプラットフォーム向けのGUIアプリケーションを作成するためのフレームワーク(Linux、 Windows、 マックOS、 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(キュートと発音)は複雑なシステムであり、PyQtのコードベースにはコンパイルされた C++ および Python 内部のコード。そのため、他の Python ライブラリと比較すると、ソースからビルドしてインストールするプロセスは複雑です。ただし、wheels を使用すると PyQt5 を簡単にインストールできます。

車輪付きの設置

ホイールは新しい標準です Python パッケージングおよび配布形式。簡単に言えば、ホイールは特別な名前と .うーん ファイル拡張子。ホイールはpip(Pythonのパッケージマネージャ)は、最近のバージョンの Python.

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

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

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

PyQt5をインストールする

ステップ2) 以下を入力してください。

 pip install PyQt5

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

PyQt5をインストールする

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

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

基本的な PyQt Concepts とプログラム

PyQt5をコンピュータに正常にインストールしたら、 Python GUI デザインアプリケーション。

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

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

プログラム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 キーを押してプログラムを実行します。または、保存したファイルをダブルクリックしてアプリケーションを起動します。すべてが正しく行われると、以下に示すように、Guru99 というタイトルの新しいウィンドウが開きます。

基本的な PyQt Concepts

素晴らしい! 機能しています。 それほど多くはありませんが、基本を理解するには十分です。 この 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 オブジェクトの基本クラスであり、アプリに表示されるほぼすべてのものがウィジェットです。これには、ダイアログ、テキスト、ボタン、バーなどが含まれます。複雑なユーザー インターフェイスを設計できる機能は、ウィジェットをネストできることです。つまり、ウィジェットの中にウィジェットを配置し、そのウィジェットの中にさらに別のウィジェットを配置することができます。次のセクションでは、この動作を確認します。

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 に渡し、Qt はユーザーが GUI からアプリケーションを閉じたときにのみアプリケーションを終了します。他の Python プログラムのように ctrl+c でアプリケーションが終了しないのはそのためです。Qt がアプリケーションを制御しているため、アプリケーション内で設定しない限り、Python イベントは処理されません。また、exec メソッドの名前にアンダースコアが含まれていることに注意してください。これは、exec() が Python で既にキーワードであり、アンダースコアによって名前の競合が解決されるためです。

空っぽの窓の向こう側

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

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キーを押してプログラムを実行します。間違いがなければ、 IDLE 以下に示すように、テキストとボタンを含む新しいウィンドウが開きます。

空を超えて Windows

  1. 最初のウィンドウのボタンをクリックすると、書き込んだテキストを含む新しいメッセージ ボックスが開きます。
  2. 「詳細を非表示/詳細を表示」ボタンをクリックして、追加テキストの表示を切り替えることができるようになりました。

ご覧のとおり、メッセージ ボックスにウィンドウ タイトルを設定していなかったため、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_()

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

特定のウィジェット (この場合はボタン 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: ラジオ ボタンと同様に、ラベルの前に選択可能な四角いボックスが表示され、選択するとチェックマークが付きます。
    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 列のグリッド) を作成するには、次のコードを記述します。

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 インスタンスで呼び出されるメソッドは、アプリケーションに特定のテーマを設定するために使用されます。

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