Qt は、高性能、スケーラブル、そしてユーザーフレンドリーなグラフィカル ユーザー インターフェイス (GUI) アプリケーションを作成するためのクロスプラットフォーム アプリケーション開発フレームワークです。開発者がデスクトップ アプリケーション、モバイル アプリケーション、組み込みシステム アプリケーションなどのさまざまな種類のアプリケーションを簡単に構築できるようにする豊富なツール、ライブラリ、機能のセットが提供されます。ここでは、Qt を使用して組み込み GUI プログラムを開発する方法を紹介します。
1. 開発環境の準備
Qtを開発する前に、まず開発環境を準備する必要があります。
1. 仮想マシンのソフトウェアとイメージをダウンロードします。
まず、VirtualBox、VMware などの仮想マシン ソフトウェアを選択する必要があります。これらのソフトウェアを使用すると、物理コンピューター上で仮想 Linux 環境の実行をシミュレートできます。
Ubuntu、Fedora、Debian など、組み込み開発に適した Linux ディストリビューションをダウンロードします。これらのディストリビューションは通常、組み込み開発に適したツールとライブラリを提供します。このチュートリアルでは、開発に Ubuntu 22.04 を使用します。イメージのダウンロード アドレスは次のとおりです。 http://security.ubuntu.com/ubuntu/pool/main/o/openssl
仮想マシン ソフトウェアで新しい仮想マシンを作成し、メモリやストレージ領域などの適切なリソースを割り当てます。メモリ サイズが 4096MB を超える場合は、ダウンロードした Linux ディストリビューションの ISO イメージ ファイルを選択し、仮想マシンに Linux システムをインストールします。
2. 必要な開発ツールとライブラリをインストールします。
コンパイラ (GCC など)、デバッガ、ビルド ツール、クロスコンパイル ツール チェーンなどの開発ツールをダウンロードする必要があります。
sudo apt update && sudo apt upgrade
sudo apt install -y wget git gcc ssh cmake ninja-build libssl-dev build-essential flex bison device-tree-compiler pkg-config
Huashan Pai SDK リソースをダウンロードします。
git clone https://github.com/sophgo/sophpi-huashan.git
cd sophpi-huashan && git pull
gcc コンパイル ツールチェーンをダウンロードします。
cd sophpi-huashan && bash download_host-tools.sh
tar -zxvf host-tools.tar.gz
gcc コンパイル ツールチェーンがダウンロードされた後にディレクトリに入り、環境を宣言した後に SDK をコンパイルします。
cd cvi_mmf_sdk && source build/cvisetup.sh
defconfig cv1812h_wevb_0007a_emmc_huashan
build_all
GUI プロジェクトを開発する前に、OpenGL ライブラリをインストールする必要があります
sudo apt-get install build-essential
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
sudo apt-get install libglfw3-dev libglfw3
3. 開発環境を構成する
組み込みシステムに基づいて qt を開発するには、開発ツールが組み込みシステムと正しく対話できるように、開発環境変数、パス、ツール チェーンなどを設定する必要があります。これにより、仮想マシンで開発し、クロスコンパイル ツールチェーンを使用してアプリケーションをターゲットの組み込みプラットフォーム用の実行可能ファイルにコンパイルすることができます。
2、Qt のダウンロードと設定
Ubuntu に Qt Creator をインストールする
Ubuntu の wget コマンドを使用して qt をダウンロードし、実行権限を付与します。
mkdir qt
cd qt
wget https://download.qt.io/new_archive/qt/5.11/5.11.3/qt-opensource-linux-x64-5.11.3.run
sudo chmod +x qt-opensource-linux-x64-5.11.3.run
./qt-opensource-linux-x64-5.11.3.run
その後、操作手順に従ってインストールできますが、追加のリソースを取得するには、インストール中に qt アカウントを登録し、電子メールで認証する必要があります。
インストールが成功すると、インターフェイスは次のようになります。Qt Creator は学習用のさまざまなルーチンを提供します。
3. Qt プロジェクト Helloworld を作成する
1.新築
qt Creator で New project を選択して
helloqt プロジェクトを作成します
デフォルトでクラス名、ヘッダー ファイル、ソース ファイルを作成します
プロジェクト ディレクトリには次の内容が含まれます: HelloQt.pro は Qt プロジェクトメイン
の管理に使用される Qt 固有のプロジェクト ファイルです
main 関数が配置されている .cpp ファイル
mainwindow.cpp QMainWindow から継承するカスタム クラス MainWindow のヘッダー ファイルmainwindow.h カスタム クラスMainWindow
のソース ファイルmainwindow.ui XML 拡張編集言語で記述されたインターフェイス ファイル
2. コードのドキュメント
プロジェクト ディレクトリの [新規追加] オプションを右クリックして C++ クラスを追加します。
クラス名を MyWidget に変更し、基本クラスとして QWidget を選択し、QObject と QWidget をチェックします。
mywidget.h に次のコードを入力します。
#ifndef MYWidget_H
#define MYWidget_H
#include <QWidget>
#include <QObject>
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = nullptr);
signals:
public slots:
};
#endif // MYWidget_H
mywidget.cpp に次のコードを入力します。
#include "mywidget.h"
#include <QLabel>
#include <QBoxLayout>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
QLabel *label =new QLabel("hello widget");
label->setAlignment(Qt::AlignCenter);
QVBoxLayout *verLayout = new QVBoxLayout(this);
verLayout->setContentsMargins(0, 0, 0, 0);
verLayout->setSpacing(0);
verLayout->addWidget(label);
}
main.cppを修正し、MainWindowを削除(コメント化)し、MyWidgetを宣言します。
#include "mainwindow.h"
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//MainWindow w;
MyWidget w;
w.resize(800, 480);
w.show();
return a.exec();
}
このようにして、helloworld qt プログラムを作成します。