2

QTreeWidgetにQTreeWidgetItems(子付き)のリストがあります。データにモデルを使用していません。

私のアプリケーションの別のウィンドウから、ユーザーは同じデータセット(異なる表示)をナビゲートでき、最初のウィンドウのQTreeWidgetは、背景色を設定してその特定の行を強調表示します。

ただし、一部のアイテムの値が同じ列でQTreeWidgetを並べ替えると、どのアイテムが最初かは未定義になります。次に、他のウィンドウを使用してナビゲートし、アイテムの背景色を設定すると、等しいアイテムが自動的にビューに入れ替わります。これは非常に奇妙に見えます。

これはQTreeWidgetの並べ替えアルゴリズムによるものと思われますが、これに対する可能な回避策を知っている人はいますか?

4

1 に答える 1

1

これを行うために使用QItemSelectionModelしていますか、それとも自分で作成しましたか?

  • 自分で書いた場合は、を使用することをお勧めしQItemSelectionModelます。
  • そうでない場合は、派生を作成する必要があるカスタムの並べ替えアルゴリズムが必要なようです。それを行う場合は、カスタムQTreeWidgetを使用することをお勧めします。QTreeViewQAbstractItemModel

また、同じデータの2つのビューがある場合は、Model/Viewフレームワークとを使用することを強くお勧めしQTreeViewます。

于 2010-02-17T17:44:39.360 に答える