我有一个简单的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
)。