Окружающая среда:qt QTableWidget programattic select of cell - как готовиться с курсором?
- Qt 4.7.1
- Qt Creator 2.1.0
- C++
Проблема:
У меня есть QTableWidget. Я добавляю строку, а затем выбираю первую ячейку.
Я хочу, чтобы иметь возможность сразу вводить в ячейку после того, как программа ее выбирает, поэтому мне не нужно добираться до мышки.
Поведение выбора заключается в том, чтобы выделить ячейку, а не помещать в нее курсор. Я должен щелкнуть по ячейке с помощью мыши, прежде чем я смогу напечатать.
Все, что я нашел до сих пор, касается поведения выбора, которое связано с выборами строк, столбцов или ячеек; ничего о том, что выбор ячейки фактически делает.
Вот мой код до сих пор работает как описано; rc
является индекс последней строки, уже определены:
ui->thetable->scrollToBottom();
QModelIndex index = ui->thetable->model()->index(rc, 0);
ui->thetable->selectionModel()->select(index,QItemSelectionModel::Select);
Попробуйте использовать ['setEditTriggers'] (https://doc.qt.io/qt-5/qabstractitemview.html#editTriggers-prop), чтобы инициировать редактирование всякий раз, когда текущий элемент изменяется. Что-то вроде этого, 'ui-> thetable-> setEditTriggers (QAbstractItemView :: CurrentChanged);' – Mike
@Mike Но это разрешило бы всегда иметь ячейки в режиме редактирования. Даже если пользователь просто выбирает элемент, который он получает в режиме редактирования. Я думаю, он хотел, чтобы это произошло только при программном выборе. –
@ luca-angioloni - это правильно; теперь, если бы я мог только заставить порядок табуляции вести себя после запрограммированного выбора - клавиша TAB переходит в BACKWARDS с одной до последней предыдущей строки. Поэтому я ввожу первые данные, а затем нажмите TAB, а затем я попал в неправильную ячейку. Он работает правильно (всегда TABS вправо/вперед), если вы наводите мышь вместо открытого редактирования через программу. – fyngyrz