コア内部

Qt には、主にQt Coreモジュールの基本的なイネーブラが豊富に含まれています。Qt はこれらのイネーブラを使用して、より高度な UI やアプリケーション開発コンポーネントを提供します。以下のトピックでは、最も重要なイネーブラについて説明し、Qt がまだ提供していない特殊な機能を実装するためにそれらを使用する方法を示します。

オブジェクト、プロパティ、イベント

QObject クラスは Qt のオブジェクトモデルの基礎を形成し、多くの Qt クラスの親クラスです。このオブジェクト・モデルは、オブジェクト内のプロパティやメソッドの実行時のイントロスペクション、操作、呼び出しを可能にするメタ・オブジェクト・システムのような多くのメカニズムを導入しています。また、QObject ベースのオブジェクト間の低レベルな通信方法である Qt のイベントシステムの基礎としても機能します。また、Qtのシグナルとスロットのメカニズムにも、高レベルの通信手段が用意されています。

加えて、QObject は、QObject::startTimer() でシンプルなタイミング・メカニズムを提供します。あるいは、QTimer クラスがタイマーのためのハイレベルなインターフェースを提供します。

コンテナ・クラス

コンテナは、他のオブジェクトのコレクションをインスタンスとするデータ構造である。コンテナの例としては、動的配列、キュー、リンクリスト、連想配列などがあります。Qt では、メモリ上のデータを構造化するための、テンプレート・ベースの汎用コンテナ・クラスを提供しています。

詳しくはコンテナクラスの一覧を参照してください。

国際化

Qt では、表示可能なテキスト文字列のエンコーディングに Unicode を使用しています。Unicode は、世界で一般的に使用されているすべての文字体系をサポートしており、クロスプラットフォーム開発に最適です。また、Qt の強力な国際化システムを使用することで、1 つのコードベースでいくつもの異なる言語をサポートするアプリケーションを作成することができます。

Qt でのプロセス間通信

Qt には、プロセス間の通信をサポートするクラスがいくつか用意されています。また、QProcess クラスを使って外部プロセスを起動したり管理したりすることもできます。

スレッド

Qt では、スレッドや並列化されたコードを安全かつプラットフォームに依存しない方法で管理する機能を提供しています。

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

Qt ではプラットフォームに依存しないコードを書くことができ、同じコードベースを変更することなく異なるプラットフォーム用にコンパイルし、デプロイすることができます。プラットフォーム固有の機能を使用したり、システムライブラリと統合する必要がある場合、Qt はそのためのソリューションも提供します。

Qt は Qt Platform Abstraction(QPA)を使用してターゲットプラットフォームのウィンドウシステムと統合します。QPA はウィンドウシステムを抽象化したもので、Qt を新しいプラットフォームに簡単かつ迅速に移植することができます。そのようなシステムの一つがWaylandプロトコルです。QtはWaylandと共に、組み込みハードウェア上でマルチプロセスのグラフィカルユーザーインターフェースをサポートする軽量ウィンドウシステムとして使用することができます。

Qt Platform AbstractionはQtのプラグインシステムを使用します。このプラグインシステムは、特定の領域(新しい画像フォーマットやデータベースドライバのサポートの追加など)で Qt を拡張するための API を提供し、サードパーティのプラグインをサポートする独自の拡張可能な Qt アプリケーションを書くこともできます。

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。