マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Qt

【OSS情報アーカイブ】Qt

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Qt」とは

概要

Qt(キュート)とは、クロスプラットフォームアプリケーション開発フレームワークです。さまざまなプラットフォームに対して同じコードベースを使用して、「高速動作」「高性能」「直感的」なアプリケーションやUIを開発できます。

基本説明

Qtは、1つのソースコードをコンパイルし直すだけで、複数のプラットフォームで動作させることが可能となるクロスプラットフォーム開発環境です。

LinuxやWindowsなどのさまざまなソフトウェアおよびハードウェアプラットフォームで実行されるクロスプラットフォームアプリケーションを迅速かつコスト効率よく「設計」「開発」「展開」「保守」できる統合フレームワークです。

直感的なツールやライブラリを備えており、グラフィカルユーザーインターフェースを作成するためのウィジェットツールキットとしても利用できます。

C++言語で実装されているため、高速動作できる点も特徴です。

経緯

・1995年:初回リリース

Qtは「プログラミングは速く、簡単で、楽しいものでなければなりません」という目標で、長年にわたりソフトウェア開発の改善に注力してきています。

ユースケース

■アプリケーションUIとソフトウェア

高速なクロスプラットフォーム開発により、幅広いオペレーティングシステムでネイティブパフォーマンスを提供できます。

■モバイルアプリ

QtはiOSやAndroidを含むモバイルプラットフォームで動作できます。

「シンプルなコンパニオンアプリ」から「高速描画が必要な3Dゲーム」まで対応できます。

■IoT

Qtは「高性能グラフィックスを備えた接続デバイス」や「非GPUの長寿命バッテリーUI」まで完全にスケーラブルであり、ハードウェアのパフォーマンスを引き出すIoTアプリケーションを開発できます。

■VR / AR

「ローエンドハードウェアでの効率の良い2Dグラフィックス」や「ハイエンドハードウェアでの強力な3Dグラフィックス」などのVR/ARアプリも開発できます。

■自動車

「単一のSoCで実行される車載インフォテインメント(IVI)」「デジタル計器クラスタ」「ヘッドアップディスプレイ(HUD)用インターフェース」などを開発できます。

■オートメーション

「各種センサー」や「他システム」を統合して、「スマート工場」「住宅」「サービス」向けの自動化システムを開発できます。

オフィシャルサイト情報

■オフィシャルサイト

→qt.io

■主要開発元

Qtは、Qt Companyが中心となり開発が進められています。

→Qt →About Us

■ライセンス情報

Qtのライセンスは「GNU Lesser General Public License (LGPL) version 3」です。

詳細について、こちらを参照ください。
→Qt →Qt Documentation →Qt Licensing

■ダウンロード

各OS用のインストーラーが用意されています。

・macOS用
・Windows用
・Linux(32/64ビット)用

→Qt →Install Qt

■導入事例

→Qt →Qt Resource Center

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Xamarin」「Mono」など。

開発フレームワーク

Qtは、クロスプラットフォームおよびクロスコンパイルのサポートを提供する「Qt統合開発環境」の他にも、開発ライフサイクル全体を通して価値のあるツールを備えた完全な開発フレームワークを提供します。

成熟し包括的で直感的に利用できる一連のAPIにより、開発生産性を大幅に向上できます。

クロスプラットフォーム開発環境

■概要

Qtを使用すると、プラットフォームに依存しないコードを記述できます。

Qtはさまざまな32ビットおよび64ビットプラットフォームをサポートしており、「GCC」「ベンダー提供のコンパイラ」「サードパーティのコンパイラ」などを使用して各プラットフォームでビルドできます。

GUIアプリケーションを一度作成すればソースコードを書き直すことなく「デスクトップOS」「モバイルOS」「組み込みOS」など、あらゆるオペレーティングシステムやハードウェアに展開できます。

プラットフォーム固有の機能を使用してシステムライブラリと統合できるソリューションも提供しています。

→Qt →Qt Documentation →Supported Platforms

■ウィンドウシステム統合

Qtは「QPA(Qt Platform Abstraction)」を使用して、ターゲットプラットフォームのウィンドウシステムと統合します。

QPAは、Qtを該当プラットフォームに簡単かつ迅速に移植できるウィンドウシステムの抽象化機能を提供します。

Qtは「Waylandプロトコル」を利用することで、組み込みハードウェア上の軽量ウィンドウシステムと統合して、マルチプロセスグラフィカルユーザーインターフェースをサポートできます。

■サポートプラットフォーム

デスクトッププラットフォーム

・Linux/X11
・macOS
・Windows

モバイルプラットフォーム

・Android
・iOS/tvOS/watchOS
・WinRT

組み込みプラットフォーム

組み込みプラットフォーム用Qt開発フレームワーク「Qt for Device Creation(商用製品)」を利用することで、「組み込みLinux」「QNX」「INTEGRITY」「VxWorks」などの組み込みプラットフォームに展開できます。

→Qt →Qt Documentation →Qt 5.13.0 for Device Creation

C++パフォーマンス

QtのC++アプローチにより、ネイティブパフォーマンスレベルの高速動作を実現できます。

■C++言語の特徴

C++言語はハイパフォーマンスを特徴とするプログラミング言語で、「例外処理」「関数オーバーロード」「ハードウェアへの直接アクセス」などの機能を提供します。

ハイパフォーマンス性能により「GUIアプリケーション」「ゲームの3Dグラフィックス」「リアルタイム数学シミュレーション」など、特に高速処理が必要なアプリケーションにも対応できます。

また、C++は移植性が高いため、マルチデバイス(マルチプラットフォーム)アプリ開発に適しています。

「Qt」の主な機能

データストレージ機能

■概要

Qtは「ファイルアクセス」や「データストレージデバイスアクセス」などの機能を提供します。

→Qt →Qt Documentation →Data Storage

■主なサポート種類

SQL

QtのSQLのモジュールは、データベースAPIと通信するためのドライバプラグインを使用して各データベースにアクセスします。

Qtが提供する主なドライバ
・SQLite
・MySQL
・PostgreSQL
・Oracle
・ODBC など

Qtが必要なドライバを提供していない場合は、独自ドライバを開発して接続できます。

XML

Qtは「XMLストリームの読み取りと解析」および「ストリームへの書き込み」を実行するAPIを提供します。

JSON

QtはJSONもサポートしています。

JSONは、データ交換のためのテキストベースのオープンスタンダードであり、読みやすく解析しやすい点が特徴です。「オブジェクトと呼ばれる単純なデータ構造」や「連想配列」などを表現するために使用されます。

ローカルストレージ

「Local Storage API」は、QMLおよびJavaScriptから、SQLデータベースのローカルオフラインストレージにアクセスする機能を提供します。

ネットワーク機能

■概要

Qtは以下のネットワーク用クラスを提供します。

・ネットワーク通信用クラス—高レベルおよび低レベルに対応
・Web統合用クラス
・プロセス間通信用クラス

→Qt →Qt Documentation →Networking and Connectivity

■主なサポート種類

ネットワーク通信

Qtは「HTTP」「TCP」「UDP」に重点を置いた幅広いネットワーク通信をサポートしています。

WebSocket

「TCP通信」または「HTTP通信」の代替手段として「WebSocketプロトコル(RFC 6455)」を使用できます。

WebSocketプロトコルは、追加のクライアント/サーバベースの通信を作成することなく、既存のWebインフラストラクチャを利用するためのTCPプロトコルの上にある双方向通信プロトコルです。

QtのWebSocketモジュールは「QML」と「C++」の両方のAPIを提供します。

プロセス間通信

Qtは、Qtアプリケーションで「プロセス間通信(IPC)」を実装するためのいくつかの方法を提供します。

シリアルポート通信

Qtのシリアルポートモジュールは「RS-232標準」を使用して、シリアルポートを介して通信するための「C++API」を提供します。

物理ポートで動作し、これらのポートをエミュレートするドライバでも動作します。

シリアルポートエミュレータの例には「仮想COMポート」「com0comエミュレータ」「Bluetooth SPP」などが含まれます。

Bluetooth通信

QtのBluetoothモジュールは、「C++用」と「QML用」の両方をAPIを提供します。

「従来のBluetooth」および「Bluetooth Low Energy」をサポートします。

近距離無線通信

NFCは、非常に近距離(20センチメートル未満)用の無線プロトコルです。

QtのNFC通信モジュールも、「C++」と「QML」の両方のAPIを提供します。

Qt開発ツール「Qt Creator」

概要

Qt開発ツール「Qt Creator」には、「プロジェクトの作成」から「ターゲットプラットフォームへのアプリケーションのデプロイ」まで、アプリケーション開発ライフサイクル全体を通してタスクを達成するためのツールを提供します。

「Qt Creator IDE」「Qtライブラリ」「サンプル」「ドキュメント」などの開発ツールが含まれています。

→Qt →Qt Documentation →Qt Creator Manual

統合開発環境「Qt Creator IDE」

■概要

「Qt Creator IDE」は、クロスプラットフォーム統合開発環境です。

開発者とデザイナーの両方のための幅広い統合ツールが付属しています。

→Qt →Qt APIs & Libraries, Tools and IDE

UIデザインツール「Qt Design Studio/Qt 3D Studio」

■概要

UIデザインツール「Qt Design Studio」「Qt 3D Studio」を利用すると、「宣言型スクリプトプログラミング」「命令型デザイン」「HTML5を含むハイブリッド開発」を使用して、流動的で応答性の高い2D/3D UIを作成できます。

→Qt →Qt UI Design Tools

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】 「 OTセキュリティ 」とは?〜ITセキュリティ との違い〜🔑

デジタル寺田の3分用語解説

2024.12.02

【デジタル寺田の3分用語解説】 「 OTセキュリティ 」とは?〜ITセキュリティ との違い〜🔑

「 OTセキュリティ 」は、工場や発電所の産業用制御システムを守るためのセキュリティで、安全性が重視されます。ITシステムとの接続増加により脅威が高まり、「運用停止の難しさ」や「管理部門間の連携不足」が課題です。サイバー攻撃の増加に伴い、対策の強化が急務となっています。

【デジタル寺田の3分用語解説】 「 103万の壁 」(年収の壁)とは?🧱

デジタル寺田の3分用語解説

2024.12.02

【デジタル寺田の3分用語解説】 「 103万の壁 」(年収の壁)とは?🧱

「 103万の壁 」とは、給与収入が年間103万円を超えると、所得税が課税される「年収ライン」を指します。このラインを超えると手取り収入が減少するため、多くの人が働き方を調整します。住民税や扶養控除外れも家計負担に影響します。他にも、厚生年金などの負担が発生する「壁」が存在し、制度の見直しが議論されています。

【デジタル寺田の3分用語解説】 ガートナーが発表した「2025年の戦略的テクノロジの トップ トレンド 」とは?🌟

デジタル寺田の3分用語解説

2024.12.02

【デジタル寺田の3分用語解説】 ガートナーが発表した「2025年の戦略的テクノロジの トップ トレンド 」とは?🌟

ガートナーが発表した「2025年の戦略的テクノロジー トレンド 」には、自律的意思決定を行う「エージェント型AI」「AIガバナンス・プラットフォーム」「偽情報拡散防止技術」「次世代コンピューティング技術」が含まれます。これらは仕事や生活に深く影響し、企業競争力向上のカギとなると予測されています。