У меня есть простой QStandardItem и QTableView и QStyledItemDelegate. У них есть делегаты, я хотел бы отключить возможность для пользователя изменять содержимое столбца в таблице, и разрешать только выбирать и копировать. Я думаю, это связано с QStyledItemDelegate::createEditor
,
Когда я устанавливаю, что он возвращает 0, он просто отключает все.
QWidget *InfoTableItemDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
// return QStyledItemDelegate::createEditor(parent, option, index);
return 0;
}
мой вопрос, как я могу определить его, чтобы я мог только выбрать и скопировать, и отключить возможность редактировать его, как удалить или изменить текст
Если ваши данные могут быть показаны в виде простого текста, вы можете вернуть QLineEdit в режим только для чтения. Если у вас есть изображения или другие типы данных, возможно, выбираемый QLabel с небольшим количеством html (чтобы сделать выбор QLabel, вы должны включить Qt::TextSelectableByMouse
или же Qt::TextSelectableByKeyboard
в флаги взаимодействия ярлыка).
Других решений пока нет …