QTableView を継承する単純なクラスがあり、次の動作が必要です。ユーザーがいくつかのセルを選択すると、選択された最初のセルが現在のインデックスとして設定されるようにします。
たとえば、(0, 0) から (2, 2) に向かって選択すると、入力を開始すると、デフォルトのように見える (2, 2) ではなく、(0, 0) にテキストが表示されます。
setSelection 関数を次のようにオーバーライドしようとしました。
void SampleTable::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)
{
if((command & QItemSelectionModel::Current) != 0)
{
QModelIndex curr = indexAt(rect.topLeft());
selectionModel()->select(curr, QItemSelectionModel::Current);
command ^= QItemSelectionModel::Current;
}
QTableView::setSelection(rect, command);
}
しかし、役に立たない。マウスイベントと関係があるようですが、ソースコードで問題を特定することはできません.とにかくもっと簡単な方法があることを願っています.