我有一个简单的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;
}
我的问题是,我如何定义它以便我只能选择和复制,并禁用编辑它的选项,如删除或更改文本
答案 0 :(得分:1)
如果您的数据可以显示为简单文本,那么您可以在read-only mode中返回QLineEdit。如果您有图像或其他类型的数据,可能是带有一些html的可选QLabel(要使QLabel可选,您必须在label's interaction flags中包含Qt::TextSelectableByMouse
或Qt::TextSelectableByKeyboard
。