4

QAbstractItemModelにプラグインするサブクラスに取り組んでいQTreeViewます。再帰Name = Value型構造を持っています - どのインデックスも独自のサブツリーを持つことができます。ほとんどすべてのツリー ビューがそのように機能するため、これは左側で問題ありません。問題は、右側にのみサブツリー (値のリスト) が必要な場合があることです。私が今持っているように、それうまくいくように思えますが、Qt はrowCount()右側を呼び出すことはなく、そこにサブツリーが必要であることを認識していません。

私が現在持っている解決策は、基本的にそのための別のモデルを作成し、setIndexWidgetこれが発生するたびに別のツリービューを提供するために使用することです. それは問題ありませんが、ツリービューをあちこちに配置することなく、サブツリーを右側に表示したいと本当に思っています。私のモデルはそこにサブツリーがあると応答しますが、Qt はそれらを要求することはありません。

これが少し不明確な場合、これは私が達成したいことの基本的な考え方です:

- Root        |
  - Name 1    |    Value
      Name 2  |  - Compound Value
              |      Sub-value 1
              |      Sub-value 2
      Name 3  |  + Compound Value (collapsed)
  + Name 4    |    Value

そのままでは、Qtがその列でorを呼び出すことはないため、複合値はそれらの隣に 's +' と's' を取得しません。-hasChildren()rowCount()

サブツリー ビューを表示する必要がある場合は、それで問題ありません。最初にそれを行うより良い方法がないことを確認したいだけです。

4

1 に答える 1

0

デュアル ツリー ビューを自分で実装しようとしています。次のようなものです。

+ a        |    A
  + b      |  + B
    c      |      C

そして、私が見てきたことから、空のデータを返すことで、Name 2 と Name 3 の間にスペースを作ることができます。

だから、このようなものが役立つかもしれません

def data(self, index, role): 
    ...
    if item.pathdepth() > 3 : 
        return " "
    ...

def flags(self, index)
    ...
    if item.pathdepth() > 3 : 
        return Qt.Some_Role but not others
    ...

ロールについてはまだ十分にわかりませんが、ユーザーが「空白」を選択できないように、選択と編集を無効にすることができます。

しかし、2 番目の列でツリーを取得する方法はわかりませんでした。

于 2012-08-05T08:31:02.310 に答える