南無ちゃんのブログ    https://namva.net

天下御免の夢中人=南無ちゃんは、今日も元気で明るく楽しく逞しく生きてゆく。

ラズパイでGUIアプリ開発

2022-02-15 13:35:25 | プログラミング

 先日ラズパイ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)にインストールを試みましたが、現時点では対応していないようです。

コメント    この記事についてブログを書く
« 変更許可通知書を受領 | トップ | Qt5でシリアルポートプログラ... »
最新の画像もっと見る

コメントを投稿

プログラミング」カテゴリの最新記事