先日ラズパイ4B(OS=Buster)にWSJT-Xをインストールしたところ、快適に動作したのでWSPRを運用するにはこれで十分だという感触を得ました。一方、無線機としてTRX-305(MB=マザーボード単体)を使用する場合、周波数などを制御する頭脳となる部分が必要で、これまではPCを使ってきましたが、ラズパイ4Bでついでに制御したくなりました。
これまで、Linuxで動作するCUI(キャラクタインタフェース=DOSのコマンドのようなモノ)ベースのアプリをCやPythonで書いたことがありますが、GUI(グラフィックユーザインタフェース=Windowsのようなモノ)アプリは作成したことがありません。唯一の体験は、20年程前にKylixというボーランドのRADで作成したことがありますが、それっきりです。
WSJT-Xは、Qt5というGUI開発フレームワークを使って開発されているようなので、LinuxでGUIアプリを開発するのはコレだと決めました。記述言語はPythonでもC++でも何でも構いません。最近Pythonを齧り始めたので取りあえずPythonにしました。
方針は決まったので、「Raspberry PiにPyQt5をインストールする」という記事を参考にしながら、早速Qt5のインストールを開始しました。ところが・・・どっこい!のっけから躓きました。
sudo apt-get update
sudo apt-get upgrade
とやった後、
sudo apt-get install qt5-default
とやると、「ライブラリーの一部がインストールできない」というエラーで止まりました。
色々試みた結果、次のようにやると何とか虎口を脱出しました。
sudo apt update
sudo apt full-upgrade
とやった後に、
sudo apt-get install qt5-default --fix-missing
とやったらすんなり通りました。(最初からやるのなら--fix-missingは不要)素人なので、aptとapt-getの違いさえ良く分かっていません。(;´д`)トホホです。
引き続き、次のようにして各種パッケージをインストールしました。
sudo apt-get install qtcreator
sudo apt-get install libqt5serialport5
sudo apt-get install libqt5serialport5-dev
sudo apt-get install qttools5-dev-tools
sudo apt-get install eric
例題に従って、ericでフォームを作成して実行してみましたが、何か変?というか何となく未熟な感じがしました。過去に、未熟なものを齧って痛い目に遭ったことがあります。できれば、ちゃんと熟した環境を使いたいと感じたので、C++を試してみることにしました。
次の2つのURLを参考にして、Qt5とC++の組み合わせで、ボタンとテキストエディットだけの簡単なフォームを作成してみました。
https://qiita.com/soramimi_jp/items/b2b238d1537dbb99abea
https://www.youtube.com/watch?v=Pb-XC5Q5zLU
出来上がったtest.oは実行可能なので、Windowsのexeファイルと同じように、ファイルマネージャから開いて実行することができました。
この体験は素晴らしい第一歩のように感じました。プログラミングをしていて久しぶりに味わう感動体験です。
Qt5では、GPIOやシリアルポートを扱うこともできるようです。組み込み用のアプリでは、この手のI/Oが簡単に扱えることが非常に重要なので、DelphiやVisualBasic(VB.NET)にできなかったことも出来そうでワクワクしてきました。おまけに、Qt5はマルチプラットフォームに対応しており、Linux/Windows/Android/MACと何でも来いなので夢が膨らみます。
注記)Qt5をRaspberryPiOSの最新版であるBullseye(Linux 11)にインストールを試みましたが、現時点では対応していないようです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます