技術コラム Vol.6

Qt Creatorではじめる!Qtアプリ開発

開発部 エンジニア / 袴田

公開日:2022/07/22

今回ご紹介する「Qt」(キュート)は、クロスプラットフォームに対応したアプリケーションフレームワークです。
Qtは、Windows、Linux、macOSなどデスクトップOSをはじめ、モバイル、組込み(マイコン)など、幅広いターゲットのGUIアプリケーションで使用されています。

本コラムでは、ターゲットを組込みLinuxにフォーカスし、Qt Creatorを使用したGUIアプリケーション開発の概要をご紹介します。

  1. QtとQt Creatorの概要
  2. リモートデバッグ環境
  3. 開発環境の準備
  4. アプリケーション作成~デバッグ

をご紹介いたします。

1.QtとQt Creatorの概要

(1)Qtの特徴

以下の特徴が挙げられます。

  • クロスプラットフォーム
  • 様々なモジュール
  • 高生産性・高水準C++ API
  • Qt Quick、Qt Widget、Qt WebEngineによるGUIアプリケーション
  • オープンソースと商用のデュアルライセンス

また、QtはGUI開発フレームワークですが、GUI以外にもマルチメディア、ネットワーク、データベースなど様々な機能をサポートしています。詳細は、公式サイトをご参照ください。

https://www.qt.io/ja-jp/product/features

(2)Qtのライセンスについて

Qtのライセンスは、商用ライセンスとオープンソースライセンスのデュアルライセンスが採用されています。本技術コラムにて使用しているQtは、オープンソースライセンス版となります。Qtのライセンスについては、以下のページをご参照ください。

https://www.qt.io/ja-jp/licensing

(3)Qt Creatorの特徴

Qt Creatorは、Qtアプリケーション開発のための統合開発環境(IDE)で、Qtでの開発を効率よく行うため以下のような機能が提供されています。

  • ソースコードの入力、編集
  • GUIデザイン
  • プロジェクトのビルド
  • ターゲットへのアプリケーションの配布
  • デバッガによるソースコードデバッグ
  • クロス開発に対応
GUIデザイン画面
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)を使用し、それぞれの環境に各種サーバとクライアントを実装します。

PC「Qt Creator_SSH, SFTP, GDBクライアント」- aSMARC-RZG2E「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アプリケーション等があります。

GUIアプリケーションの作成画面  

(4)リモートデバッグ

アプリケーションは、クロスビルド後すぐにリモートデバッグを開始することができます。
ターゲットボードへのファイル転送やブレークポイント等の制御は、Qt CreatorがSFTPやGDB通信を使用して自動で行いますので、PC上で実行/デバッグする感覚でリモートデバッグができます。

リモートデバッグの画面

今回は、QtとQt Creatorを利用したアプリケーション開発の手順について、簡単にご紹介しました。

近年、スマートフォンの普及などに伴い、直感的に操作できるGUIの需要は高まっています。特に組み込み機器においては、まだまだ拡大の余地があり、Qtのようなツールを利用する機会が増えてくると思います。

Qtについては、さまざまな文献やネットで情報が提供されており、以前よりも格段に導入しやすくなったと感じています。まだ使ったことが無い方や以前にあきらめてしまった方も、是非試してみてください。

製品のご案内

本コラムのより詳細な内容については、下記の製品のアプリケーションノートとして、公開しております。
アプリケーションノートでは開発にお役立ていただける技術情報を多数公開しておりますので、興味のある方はぜひ製品をご利用ください。

  • ※ArmおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
  • ※記載されている会社名、製品名は、各社の登録商標または商標です。
  • ※記載の内容は改良のため、予告なく変更する場合がございます。