Режим редактирования QTableView

При редактировании ячейки QTableView это открывает пустую запись. Я видел несколько таблиц, которые вставляют предыдущий текст в новую открытую запись и выбирают его при редактировании ячейки, но не могут найти его реализацию. Есть ли стандартная опция для QTableview или ее нужно делать вручную.

1

Решение

Данные вашего дерева просмотра узла, когда он находится в режиме редактирования, определяемом QAbstractItemModel::data() функция с Qt::EditRole как второй аргумент. В приведенном примере в древовидном представлении отображается строка «Редактирование …» в редакторе (обычно это виджет редактирования строки), когда ваш узел запускает режим редактирования:

QVariant TreeModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();

if (role == Qt::EditRole) {
return QString("Editing...");
} else if (role == Qt::DecorationRole) {
[..]
} else {
return QVariant();
}
}
3

Другие решения

Других решений пока нет …