QListViewの使用にまだ苦労しています。ビュー内の特定の行を選択しようとしていますが、これを行う方法がわかりません。
モデルのメソッドを使用することを推奨するStackOverflowで同様の質問を見つけましたが、createIndex()
このメソッドは保護されているため(おそらく、以前は公開されていましたが、現在は公開されていません)、機能しません。なにか提案を?
呼び出すだけで何でもインデックスを取得できます
QModelIndex indexOfTheCellIWant = model->index(row, column, parentIndex);
その後setCurrentIndex(indexOfTheCellIWant)
、ブルーノが彼の答えで言ったようにあなたは呼ぶことができます。
モデルにツリー構造ではなく標準のアイテムリストだけが含まれている場合は、さらに簡単です。アイテムはルートアイテムであると想定できるため、親はありません。
QModelIndex indexOfTheCellIWant = model->index(row, column);
ツリー構造では、行と列を指定するだけでは不十分であるため、少し注意が必要です。親に関してこれらを指定する必要があります。この部分について知る必要がある場合は、私に知らせてください。詳細を説明します。
注意すべきことがもう1つだけあります。選択は、実際には行ではなく、セルに基づいて行われます。したがって、ユーザーがセルを選択したとき(またはコードを介して選択したとき)に行全体が選択されるようにする場合は、それ自体に「selectionBehavior」を設定することでそれを行うことができます。
list->setSelectionBehavior(QAbstractItemView::SelectRows);