Qtベースの組み込みGUI開発ガイド(1)

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 プログラムを作成します。

おすすめ

転載: blog.csdn.net/lily_19861986/article/details/130936201