Задать вопрос
@Mercury13
Программист на «си с крестами» и не только

Qt: как сделать, чтобы редактор в таблице вёл себя по-другому при нажатии Tab?

Я уже задавал вопрос по этому поводу: Qt: как проверить, раскрыт ли combobox?
Итак, редактор-комбобокс в QTableView налажен. Но вопросы продолжаются. Оказалось, что редактор при нажатии Tab ведёт себя забавно: просто перескакивает на другую ячейку таблицы. Надо бы перескакивать на компонент, который следующий в порядке табуляции.
tabKeyNavigation у таблицы, разумеется, выключен. Если курсор на нередактируемой ячейке (есть и такие), всё в полном порядке.
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Оценить 4 комментария
Решения вопроса 1
@Mercury13 Автор вопроса
Программист на «си с крестами» и не только
QModelIndex EditableTable::moveCursor(
        CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
{
    switch (cursorAction) {
    case QAbstractItemView::MoveNext:
    case QAbstractItemView::MovePrevious:
        return QModelIndex();
        break;
    default:
        return Super::moveCursor(cursorAction, modifiers);
    }
}


Чтобы протолкнуть такую функциональность в Qt Creator, использовать функцию «Promote To…»
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Drakonn
@Drakonn
Инженер-программист
Тогда пишите свой, наследованный от QTableView класс, в обработчике клавиатуры которого и напишете всё так, как вам удобно)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы