PyQt6でGUIアプリを開発する

PythonのGUI開発用フレームワーク『PyQt6』についてまとめました。

PyQt6とは

C++のクロスプラットフォームフレームワークである『Qt(キュート)』をPython用にバインディングしたものです。

実行環境

ホストOSWindows 10 21H1(19043.1889) 64bit
コンソールPowerShell(5.1.19041.1682)
Python3.9.13

事前準備

仮想環境を作成

cd [仮想環境を作成するフォルダ]
python -m venv [仮想環境フォルダ名]

仮想環境を起動

起動した後、念のためpipをアップデートしておきます。

[仮想環境フォルダパス]\Scripts\activate
python -m pip install --upgrade pip

PyQt6をインストール

pip install PyQt6
pip list

==============================
Package    Version
---------- -------
pip        22.2.2
PyQt6      6.3.1
PyQt6-Qt6  6.3.1
PyQt6-sip  13.4.0
setuptools 58.1.0

環境変数を追加

PowerShellを起動し、環境変数に『QT_QPA_PLATFORM_PLUGIN_PATH』を追加します。

# 環境変数が存在するか確認(存在し、かつパスが正しいなら設定不要)
$env:QT_QPA_PLATFORM_PLUGIN_PATH

# 環境変数を設定
$env:QT_QPA_PLATFORM_PLUGIN_PATH = "[Qt6のプラットフォームプラグインフォルダ(※)]"

※プラットフォームプラグインフォルダは下記のことです。
  [仮想環境までのフォルダパス]\Lib\site-packages\PyQt6\Qt6\plugins\platforms
仮想環境(venv)上のパスですので、Qt6を他の環境にインストールした場合は多少異なるかもしれません。

動作確認

下記のサンプルソースを実行して、GUI画面が表示されればOKです。

import sys
from PyQt6.QtWidgets import QApplication, QWidget

if __name__ == '__main__':

    app = QApplication(sys.argv)
    widget = QWidget()
    widget.resize(250, 150)
    widget.move(300, 300)
    widget.setWindowTitle('sample')
    widget.show()

    sys.exit(app.exec())