1

次のようなデータ表現があります。


  • --+ 親(0:0)
    • ----+子1(1:1)
      • ----+子11 (2:2)
    • ----+子n(1:n)

QT ツリービューとカスタム モデルを使用して表示しようとしています。私の要件は、親が子と比較して別の列にある必要があるということです。

親の col:row が 0:0 の場合。子の列:列は 1:1 にする必要があります。さらに、子の子は col:row を 2:2 にすることができます

Qt フォーラムを読んだ限り、これを行う簡単な方法はありません。Qtツリービューに基づいてカスタムビューを実装する必要があると書かれています。これが唯一の方法ですか?参照用にビューのようなカスタム ツリーを実装する方法の例はありますか? Linux(Ubuntu 12)でQt 4.7を使用しています。ヘルプをいただければ幸いです。

前もって感謝します。

4

1 に答える 1

1

QTreeViewをサブクラス化せずに、ツリービューの表示動作を変更できるとは思いません。別の方法は、QAbstractProxyModelを実装して、カスタムモデルを新しいプロキシモデルにマップし、カスタムモデルの各インデックスを、ツリーレベルに基づいてプロキシモデルの異なる列にマップすることです。QTreeViewではなくカスタムモデルの実装に既に精通しているので、後者の方法の方が簡単だと思います。

こちらのドキュメントをご覧ください:http: //qt-project.org/doc/qt-4.8/qabstractproxymodel.html

于 2013-03-12T10:08:40.583 に答える