1

我正在尝试自学如何QStyledItemDelegate正确使用课程。Qt 有一个很棒的例子,我在这里读到:Qt Spin Box Delegate Example

但这是一个我似乎无法回答的问题。让我们看一下他们的示例屏幕截图。

Qt Spin Box 委托截图

我将如何SpinBoxDelegate在他们的示例中编写以便我只能编辑部分数据,例如,只有第 2 列中的项目?

4

1 回答 1

3

我假设您已经在重新实现QAbstractItemDelegate::createEditor()

指示表中的某个索引不应该是可编辑的最简单方法是NULL从此函数返回,例如:

QWidget *QAbstractItemDelegate::createEditor( QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index )
{
  if( index.column() == 0 )
    return NULL;

  return new QSpinBox( parent );
}

您可以通过在模型中填充其他信息并使用QModelIndex::data()

于 2012-07-17T19:40:56.107 回答