Skip to main content

UI から I/O までの
データハンドリング

Qtが標準で提供するクロスプラットフォームのデータハンドリング機能により、開発負荷を軽減できます。データの送信・受信、保存・読み込み、クエリ、操作、シリアライズを効率的に行い、アプリケーションのアーキテクチャ全体にわたってスケーラブルに対応します。

アーキテクチャ全体にわたるデータハンドリング

Qtのクロスプラットフォーム機能により、データのシリアライズ、広く利用されているフォーマットの活用、柔軟なデータ入出力(I/O)を通じて、効率的なデータ処理を実現できます。シンプルかつ強力なコンセプトにより、アプリケーションのアーキテクチャ各層への実装や、プラットフォーム間での再利用が可能です。

全プラットフォーム対応の単一API

1つのソースコードで複数プラットフォームに対応でき、環境ごとの設定や保守にかかる手間を削減します。

クロス対応機能を見る

すぐに使える標準機能

ネットワーク、デバイス、データベース、ファイル、設定、リソースとのI/Oを扱い、必要に応じてデータをシリアライズできます。

データハンドリング機能を見る

多様な標準規格とフォーマット

XML、JSON、CBOR、Protobufなど、広く利用されているフォーマットに対応し、高い相互運用性を実現します。

対応フォーマットを確認

煩雑な下回りの実装を意識せずに済み、設計の完成度が最高水準に達していることを確信できます。

Alessandro Agansati氏, Sauber Motorsport Project Leader Pitstop System

事例を読む

クロスプラットフォームの効率性

プラットフォームを超えた
データハンドリング

すべてのデータハンドリングを単一のAPIで実現することで、日常的な開発作業を大幅に削減できます。どのプラットフォームでも同じように動作するため、OSごとにアプリケーションロジックを個別に管理する負担が軽減されます。

Qtは、高レベルから低レベルまでスケールする幅広いデータ入出力(I/O)機能を提供します。アプリケーションのデータ処理に必要なソースコードは1つだけで済み、記述と保守を効率化できます。

すぐに使えるビルディングブロック

多様な標準規格・
フォーマットへの対応

Qtは、効率的かつ互換性の高いデータハンドリングを実現するために、さまざまな標準規格やフォーマットをサポートする既成の機能を提供します。

シリアライズされたデータや、広く利用されているフォーマットを活用することで、次のような用途に対応できます。

  • WebサービスやgRPCなどのネットワーク/接続機能
  • を通じた効率的なデータ転送Efficient data transfer via e.g. web services, gRPC, and other options,
  • キャッシュやストレージを含むデータ永続化
  • 特に大量データの処理

また、以下のような多様なデータソースとの入出力(I/O)も容易に構成できます。

  • 外部デバイスやデータベースとの入出力
  • タッチスクリーン、キーボード、マイク、Webカメラからの入力
  • モニター、スピーカー、プリンター、3Dレンダリング出力

Qtを使えば、これらすべてをクロスプラットフォームでそのまま活用できます。

Qt のデータハンドリング機能

Qtは、データのシリアライズによる相互運用性の確保や、データ入出力(I/O)を扱うためのクラスを提供しています。

相互運用性

標準化されたデータ構造を活用することで、データハンドリングを容易にします。

データシリアライゼーション

QtのAPIを使用することで、次のようなデータのシリアライズが可能です。

  • JSONデータの解析、変更、保存を容易に実装
  • バイナリデータをハードウェアデバイス向けにシリアライズ
  • XMLデータのC++実装を効率的に処理

よく使われるフォーマット

Qtは、用途に応じて選択できる、さまざまな一般的フォーマット向けの使いやすいクラスを提供します。

  • 人が読みやすいXMLやJSON
  • コンパクトで機械可読なCBORやProtobuf

これらをQtの柔軟なネットワーク/接続機能と組み合わせることで、相互運用性を高めるためのビルディングブロックを構築できます。

JSON

広く利用されているJSONフォーマットに対応した使いやすいクラスを提供し、クラウドベースのソリューションなどでのデータの受信、解析、転送を容易にします。

XML

DOMクラスとストリームベースのクラスの両方に対応し、さまざまな用途でXMLコンテンツの読み書きを行えます。

CBOR

JSONのスーパーセットであるCBOR向けのクラスを提供し、非常にコンパクトなバイナリ形式でのデータの受信、解析、転送を可能にします。

Protobuf

Protocol Buffersのクラスを生成するためのプラグインを提供し、データのシリアライズ/デシリアライズを通じて、protobufメッセージの効率的な転送を実現します。

保存と読み込み

ネットワーク、デバイス、データベース、ファイル、設定、リソースに対して、データの保存・読み込み・操作を行えます。

Qtを使えば、さまざまなデータソースへのアクセス設定やクエリ、読み書きを容易に構成できます。また、テキストを単語・行・数値として読み書きしたり、多言語対応で必要となる特殊文字の保存など、文字列の管理も行えます。

特定のファイルフォーマット要件がある場合でも、ユーティリティを活用することで、独自の表現形式のまま開発を進めることが可能です。

アプリケーションのパフォーマンス向上のために、Qtはクロスプラットフォーム対応のアプリケーション設定やリソース管理、読み書き回数を削減するための中間データ保存を行うクラスを提供しています。

データベースとクエリ

データベースへのアクセスを管理し、各種SQLドライバーを使用してデータベースAPIと連携。データ対応コンポーネントとも接続できます。

ドメイン固有ファイル

画像ファイルや音声・動画などのマルチメディアファイルを含む、さまざまなファイル形式での書き込み、読み込み、ストリーミングに対応します。

アプリケーション設定

レジストリやXML、INIファイルなどを利用し、異なるOS間でもポータブルに設定を保存・復元できます。

リソース

アイコン、翻訳ファイル、画像など、頻繁に使用するファイルを保存するための、プラットフォーム非依存のリソースシステムを利用できます。

Qtは、リソース管理、多言語対応、シグナルスロットによるイベント処理、マルチスレッドにおける安定性確保など、Oncosoftの開発環境において中核的な役割を担っております。

Seonggong Moon氏, Oncosoft 製品開発担当

事例を読む

データハンドリングについて詳しく見る

データシリアライゼーション用フォーマットの比較:コード・サイズ・パフォーマンス

本稿は、「Comparing Data Serialization Formats: Code, Size, and Performance...

Read more

組み込みプロジェクトに適したCPUまたはSoCを選択する方法

本投稿は「How to Select the Right CPU or SoC for your Embedded Project」の抄訳で...

Read more

Qt フレームワークについて
もっと知る

Qt フレームワークが提供する 包括的なライブラリ群により、ミドルウェアから UI、2D から 3D、そしてプラットフォーム間の違いまで、日常的な実装作業を大幅に削減できます。

リリース & ライセンスについて
もっと知る

定期的な Qt フレームワークの リリースサイクルと、柔軟なライセンスオプションにより、製品の要件に最適な選択が可能です。

Qt の可能性を最大限に引き出す

アーキテクチャ各層にスケールするクロスプラットフォームのデータハンドリングで、開発の負担を軽減します。