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