QStyledItemDelegate и QStandardItem, предотвращающие изменение текста, разрешают только выделять и копировать
У меня есть простой 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;
}
мой вопрос, как я могу определить его, чтобы я мог только выбрать и скопировать, и отключить возможность редактировать его, как удалить или изменить текст
1 ответ
Если ваши данные могут быть показаны в виде простого текста, вы можете вернуть QLineEdit в режиме только для чтения. Если у вас есть изображения или другие типы данных, возможно, выбираемый QLabel с некоторым html-кодом (чтобы сделать QLabel выбираемым, вы должны включить Qt::TextSelectableByMouse
или же Qt::TextSelectableByKeyboard
в флагах взаимодействия ярлыка).