次の問題があります。
SQL テーブルから動的にデータをロードする QTreeView のモデルを実装しようとしています。
表は次のようになります。
CREATE TABLE xcmObjects
(
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
id_parent INT DEFAULT 0 NOT NULL ,
title TEXT
);
id_parent には親レコードの ID が含まれているため、構造を形成します。
必要な場合にのみ、モデルがこのテーブルからデータをロードするようにしたいと考えています。言い換えれば、完全な構造をメモリにロードしたくありません。代わりに、ユーザーによって開かれたノードのみの子を読み取りたくありません。
QSqlQueryModel と QSqlTableModel は、フラット テーブルでのみ機能するようです。
この問題の解決策の 1 つは、カスタム QAbastractItemModel クラスを実装し、開いているノード (トップレベルの非表示の親を含む) ごとに個別の QSqlQueryModel インスタンスをストア内に実装することだと思います。そして、各メソッドを書き直し、リクエストを適切なモデルに転送します。
たぶん、もっと簡単な解決策がありますか?:-)
手伝ってくれてありがとう。