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 в флаги взаимодействия ярлыка).

1

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

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

По вопросам рекламы [email protected]