1
私はカスタムQTableView
とQAbstractTableModel
を持っています。私のQTableView
は、必要でないので、QAbstractTableModel
からの列の一部を隠します。QTableViewの次の可視列へのタブ
と打ったときに、のタブを選択すると、次に使用可能な(編集可能な)列が選択されます。現在の実装ではQAbstractTableModel
から次のインデックスを取得しますが、このインデックスには非表示の列が含まれています。 (タブを打つときに選択した「次」列を参照してくださいする前に、それはカップルのプレスかもしれません。)
どのように私は次の可視の列にジャンプしタブを伝えることができますか?
言語はC++です。以下のコードは、私のQTableView
内にある:
void keyPressEvent(QKeyEvent* event)
{
if((event->modifiers() == Qt::KeyboardModifier::NoModifier) && (event->key() == Qt::Key::Key_Tab))
{
this->moveToNextCell();
}
else
{
this->QTableView::keyPressEvent(event);
}
}
void moveToNextCell()
{
const QModelIndex index = this->currentIndex();
int nextColumn = index.column() + 1;
if(index.column() <= lastEditableCol)
{
this->setCurrentIndex(model->index(index.row(), nextColumn));
}
}
void QHeaderView :: setSectionsMovable(bool movable)に注意してください。 –