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) –