Raspberry Pi で Qt for Python を動かす
ラズパイで動くGUIアプリをPythonで書いてみたいなと思い、ネット徘徊。
Qt Designerで.uiファイルを作って、Qtを呼び出すPythonパッケージを使うのが良さそうです。
Qtを呼び出すPythonパッケージは、
- PyQt
- PySide
の2種類あるみたい。
PySideがQt for Pythonという名前でQtオフィシャルが提供しているようなので、これを使ってみましょう。
ここにPySide2の説明がありました。
「Qt for PythonにはPyQt5、PySide、PySide2などのパッケージがあります。PySideはQt4までの旧バージョン、PyQt5はQt5対応して十分使えます。(というか、今までの主流です) しかしながら最近(確かQt 5.11から?)Qtが正式にPython対応しました。これにより公開されたパッケージがPySide2であり、Qt for Python環境としての公式実装とされているようです。」
Qt for Python
ここがオフィシャルなドキュメント。
インストールは、、、インストールは、、、
これみたい。
いざ、インストール!!
まずは、Raspberry Pi ImagerでクリーンなRaspbianのSDカードを作ります。
そして、apt update。
$ sudo apt update
長ーいコマンドを入力して、Qt for Pythonをインストール。
$ sudo apt-get install python3-pyside2.qt3dcore python3-pyside2.qt3dinput python3-pyside2.qt3dlogic python3-pyside2.qt3drender python3-pyside2.qtcharts python3-pyside2.qtconcurrent python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qthelp python3-pyside2.qtlocation python3-pyside2.qtmultimedia python3-pyside2.qtmultimediawidgets python3-pyside2.qtnetwork python3-pyside2.qtopengl python3-pyside2.qtpositioning python3-pyside2.qtprintsupport python3-pyside2.qtqml python3-pyside2.qtquick python3-pyside2.qtquickwidgets python3-pyside2.qtscript python3-pyside2.qtscripttools python3-pyside2.qtsensors python3-pyside2.qtsql python3-pyside2.qtsvg python3-pyside2.qttest python3-pyside2.qttexttospeech python3-pyside2.qtuitools python3-pyside2.qtwebchannel python3-pyside2.qtwebsockets python3-pyside2.qtwidgets python3-pyside2.qtx11extras python3-pyside2.qtxml python3-pyside2.qtxmlpatterns python3-pyside2uic
数分で完了。
あっさり終わった。本当に大丈夫なのか?
動作確認
オフィシャルなドキュメントのQuick startに沿って、動作確認します。
こちらのコードでバージョンを確認しました。
$ python3 qt-version.py 5.11.2 5.11.3 $
5.15かな?と思っていたけど、5.11だった。ちょっと古い。
つぎはこちらのコードを実行。
$ python3 qt-test.py qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display. $
あぁ、VSCode-SSHだからGUIが出ないですね。
次の環境変数を設定してから
$ export DISPLAY=:0.0
実行すると、ラズパイに接続しているディスプレイにアプリのGUIが表示されました。←画面ショット取り忘れ