後ろに一歩であり、選択モードがExtendedSelectionあります。ユーザーが選択した索引を変更するたびに、どのツリー行が選択されているかを正確に知る必要があります。ここにTreeViewがあります:selectedRows()は私はQMLでツリービューを有する
上記の例では、選択した行をコンソールに印刷して、正しい選択があることを確認しています。 currentIndex
は常に(予想通り)最後に選択されたインデックスを保持しているが、現在選択されているすべての行を保持することになっているselection.selectedRows()
は、常に背後にある一歩です。例えば:
ユーザ(Ctrlキーを押しながら)を選択した場合、行1, 2, 3
selection.selectedRows()
はnull, "1", "1,2"
とcurrentIndex
あろう一つ一つはそれぞれ1, 2, 3
あろう。これら2つを組み合わせることで、選択状態にあるすべての索引のリストを取得できます。 私が問題になるのは、ユーザーがCtrlキーを離して行番号4
を選択した場合、selection.selectedRows()
はnull
ですが、"1,2,3"
になります。 ユーザが(Ctrlを押しながら)行1,2,3,4
を選択した場合と、ユーザが最初に行を選択して(Ctrlキーを押しながら)1,2,3
の場合はCtrlを押して行4
を選択する場合を区別することはできません。
私はまたmyTreeView.selection.selectedIndexes
でテストが、それでも同じ動作しています。 私はTreeViewのバグのように見えますが、解決方法を教えてください。
ありがとうございました。