私は、QT フレームワークを C++ と組み合わせて使用することにかなり慣れていません。私は疑問に思っていました: 私のドメインクラスを QObject に基づいたものにするのは良い考えですか? それとも、階層の上位のクラスに対してのみこれを行う必要がありますか? (ユーザー インターフェイス レベルに近い)。QTのドキュメントはこれについて明確ではありません:
QTのドキュメントから取得:
メタオブジェクト システムは、言語を真のコンポーネント GUI プログラミングにより適したものにする C++ 拡張機能です。
明らかに、適切に構造化された方法でアプリケーションを構築したいと考えています。ここ数日、私はこの質問に対する答えを見つけるために QT のドキュメントを閲覧してきました。私のアプリケーションが永遠にぐったりするような基本的な間違いを犯したくありません;-)。
QObject と Qt Object モデルの基本的なドキュメントは既に見てきました。私はまた、助けになったが実際には結論に達するのに役立たなかったフレッシュミートの記事を見つけました. 私を混乱させる他の何かは、すべての QT クラスが基本クラスとして QObject を使用するわけではないため、QT 自体がこの問題に関して一貫していないように見えることです。
QObject を基本クラスとして使用する利点は、次のとおりです。
- 階層
- シグナルとスロット
- プロパティ
- 保護されたポインターを使用できるようにする
- 国際化
ただし、ほとんどのドメイン クラスではこれらの機能は必要ありません。これに関するベスト プラクティス ルールはありますか? それとも、上記のポイントのいずれかが必要な場合に使用するというルールにする必要がありますか?
これをあまり混乱させないことを願っています:-)