質問

PYQT 4.4を使用しています。

いくつかの写真を使用して表示するのが最適です。すべてのノードには0〜99の葉が必要です。 canFetchMore()fetchMore(). 。しかし、何らかの理由で私にとっては不明なのは、これはルートノードに対してのみ機能します。 (写真1)

ノードを崩壊させて展開すると、追加の10値がロードされます。 (写真2&3)

また、コードが通話ごとに5つのみをロードするため、10の値をロードすることも奇妙です。 fetchMore(), 、つまり、これはコードが停止してより多くのデータをロードする前に2回呼び出されます。

Screenshot 1 Screenshot 2 Screenshot 3

問題を示すために小さな例を書きました、ただそれを実行します python test.py. http://snipt.org/llh

このエラーの原因を知っている人はいますか?

役に立ちましたか?

解決

QTソース(v4.5)を見てみましたが、QAbstractItemviewとQTreeViewのv4.4とv4.5の間に大きな違いは期待できません)。

qabstractitemviewには木の概念がないので、呼び出すだけです fetchMore() 最上部のインデックス。それは呼び出します fetchMore() いつ:

  • ジオメトリが更新されます
  • スクロールバーが移動されます
  • 行が挿入されます
  • 現在のアイテムは、自動閉鎖ドラッグアンドドロップ操作の結果として変更されます

qtreeviewはさらに呼び出します fetchMore() いつ:

  • アイテムが拡張されています(これは基本的にそれが呼ぶ唯一の時間です fetchMore() 非ルートインデックス付き)
  • ビューのレイアウトは、 expandAll()collapseAll()

最良の解決策は、qtreeviewをサブクラス化して呼び出すことだと思います fetchMore() 適切な場所で、適切なインデックスがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top