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