1

我有一个简单的 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;
}

我的问题是,我如何定义它,所以我只能选择和复制,并禁用编辑它的选项,如删除或更改文本

4

1 回答 1

1

如果您的数据可以显示为简单文本,那么您可以在只读模式下返回 QLineEdit 。如果您有图像或其他类型的数据,则可能是带有一些 html 的可选 QLabel(要使 QLabel 可选,您必须在标签的交互标志Qt::TextSelectableByMouse中包含or )。Qt::TextSelectableByKeyboard

于 2012-11-28T18:55:34.460 回答