1

QStyledItemDelegateクラスの正しい使い方を自分で学ぼうとしています。Qtには、私がここで読んだ素晴らしい例があります:Qt Spin BoxDelegateExample

しかし、ここに私が答えられないように思われる質問があります。彼らのスクリーンショットの例を見てみましょう。

Qt SpinBoxDelegateのスクリーンショット

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 に答える