公開日:2022/07/22
今回ご紹介する「Qt」(キュート)は、クロスプラットフォームに対応したアプリケーションフレームワークです。
Qtは、Windows、Linux、macOSなどデスクトップOSをはじめ、モバイル、組込み(マイコン)など、幅広いターゲットのGUIアプリケーションで使用されています。
本コラムでは、ターゲットを組込みLinuxにフォーカスし、Qt Creatorを使用したGUIアプリケーション開発の概要をご紹介します。
をご紹介いたします。
1.QtとQt Creatorの概要
(1)Qtの特徴
以下の特徴が挙げられます。
- クロスプラットフォーム
- 様々なモジュール
- 高生産性・高水準C++ API
- Qt Quick、Qt Widget、Qt WebEngineによるGUIアプリケーション
- オープンソースと商用のデュアルライセンス
また、QtはGUI開発フレームワークですが、GUI以外にもマルチメディア、ネットワーク、データベースなど様々な機能をサポートしています。詳細は、公式サイトをご参照ください。
(2)Qtのライセンスについて
Qtのライセンスは、商用ライセンスとオープンソースライセンスのデュアルライセンスが採用されています。本技術コラムにて使用しているQtは、オープンソースライセンス版となります。Qtのライセンスについては、以下のページをご参照ください。
(3)Qt Creatorの特徴
Qt Creatorは、Qtアプリケーション開発のための統合開発環境(IDE)で、Qtでの開発を効率よく行うため以下のような機能が提供されています。
- ソースコードの入力、編集
- GUIデザイン
- プロジェクトのビルド
- ターゲットへのアプリケーションの配布
- デバッガによるソースコードデバッグ
- クロス開発に対応
GUIのデザインは、「Qt Widget」と呼ばれるパーツを配置することで、視覚的にデザインが行えます。
主なQt Widget
- 種類
- ウィジェット
- ボタン
- Push Button, Tool Button, Radio Button, Check Box,
Command Link Button, Dialog Button Box - アイテムビュー
- List View, Tree View, Column view, Undo View
- コンボボックス
- Combo Box, Font Combo Box
- テキスト編集
- Line Edit, Text Edit, Plain Text Edit
- スピンボックス
- Spin Box, Double Spin Box
- 日時編集
- Time Edit, Date Edit, Date/Time Edit
- ダイアル
- Dial
- スクロールバー
- Horizontal Scroll Bar, Vertical Scroll Bar
- スライダー
- Horizontal Slider, Vertical Slider
- 表示
- Label, Text Browser, Graphic View, LCD Number
- カレンダー
- Calendar Widget
- プログレスバー
- Progress Bar
- OpenGL
- OpenGL Widget
- QQuick
- QQuickWidget
- コンテナ
- Group Box, Scroll Area, Tool Box, Tab Widget, Stacked Widget, Frame, Widget, Dock Widget
2. リモートデバッグ環境
Qt Creatorで組込みLinuxのQtアプリケーションをデバッグする場合、ターゲットとPCをLANケーブルで接続し、リモートデバッグを行います。リモートデバッグでは、3種類のネットワークプロトコル(SSH, SFTP, GDB)を使用し、それぞれの環境に各種サーバとクライアントを実装します。
- ネットワークプロトコル
- 内容
- SSH
- コマンド実行等の制御に使用します。
- SFTP
- プログラム等のファイル転送に使用します。
- GDB
- デバッグ実行のGDB制御に使用します。
3. 開発環境の準備
それでは、Qt Creatorのリモートデバッグ環境の準備を行います。
(1)Qt Creatorのインストール
Qt Creatorのインストールは、Ubuntuのバージョンによって使用できるバージョンが異なります。
本コラムでは、Qt Creator 5.0.3を使用します。
ダウンロード先
https://download.qt.io/official_releases/qtcreator/5.0/5.0.3/インストールコマンド
$ ./qt-creator-opensource-linux-x86_64-5.0.3.run
(2)システムの再ビルド
Qtアプリケーションをデバッグする場合には、Qtライブラリ以外にも必要なパッケージがあります。
以下の手順にてルートファイルシステムとSDKを再ビルドします。
local.confの編集(追加内容のみ)
WHITELIST_GPL-3.0 += "gdbserver gdb readline"
IMAGE_FEATURES_append = " ssh-server-openssh "
IMAGE_INSTALL_append = " openssh openssh-sftp-server gdbserver "
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-debug qtcreator-debug"
ビルドコマンド
$ bitbake core-image-qt
$ bitbake core-image-qt-sdk -c populate_sdk
4. アプリケーション作成~デバッグ
次に、Qt Creatorを使用してプロジェクト作成からリモートデバッグまでの流れを説明します。
なお、詳細に関しては、αSMARC-RZ/G2Eにて提供しているアプリケーションノートをご参照ください。
(1)Qt Creator起動
クロス開発環境の場合には、SDKの環境を設定してからQt Creatorを起動します。
$ source /opt/poky/2.4.3/environment-setup-aarch64-poky-linux
$ ~/qtcreator-5.0.3/bin/qtcreator
(2)クロス開発環境の設定
Qt Creatorのメニュー(「ツール」-「オプション」)から設定画面を表示し、クロスコンパイラやデバッグ等の設定を行います。
(3)GUIアプリケーション作成
Qt Creatorでは、「ようこそ」-「プロジェクト」にて「+New」ボタンからGUIアプリケーションの作成ができます。
作成できる種類としては、Qt WidgetアプリケーションやQt Quickアプリケーション等があります。
(4)リモートデバッグ
アプリケーションは、クロスビルド後すぐにリモートデバッグを開始することができます。
ターゲットボードへのファイル転送やブレークポイント等の制御は、Qt CreatorがSFTPやGDB通信を使用して自動で行いますので、PC上で実行/デバッグする感覚でリモートデバッグができます。
今回は、QtとQt Creatorを利用したアプリケーション開発の手順について、簡単にご紹介しました。
近年、スマートフォンの普及などに伴い、直感的に操作できるGUIの需要は高まっています。特に組み込み機器においては、まだまだ拡大の余地があり、Qtのようなツールを利用する機会が増えてくると思います。
Qtについては、さまざまな文献やネットで情報が提供されており、以前よりも格段に導入しやすくなったと感じています。まだ使ったことが無い方や以前にあきらめてしまった方も、是非試してみてください。
製品のご案内
本コラムのより詳細な内容については、下記の製品のアプリケーションノートとして、公開しております。
アプリケーションノートでは開発にお役立ていただける技術情報を多数公開しておりますので、興味のある方はぜひ製品をご利用ください。
- ※ArmおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
- ※記載されている会社名、製品名は、各社の登録商標または商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。