1

デリゲート システムは、今のところ私には明確ではありません。

カスタムモデルを正しく表示する QListView があります。

私のモデルは、次の列で構成されています。

  • 列 1、2、および 3 はテキスト列で、列のアイテムのテキストは次を使用して入力されます。QAbstractItem::setText();

  • 列 4、5、6、および 7 は、カスタム クラスの QVariant です。これらの列には次の項目が含まれていますQAbstractItem::setData(QVariant::fromValue(MyCustomClass());

QListView から必要なのは、列 1、2、および 3 にテキストを表示し、列 4、5、6、および 7 で MyCustomClass のメソッドによって取得されたカスタム QString を表示することです。

どうすればそれを達成できますか?

4

1 に答える 1

3

QAbstractItemView::setItemDelegateForColumn(int column, QAbstractItemDelegate* delegate)ドキュメントを使用してください。

カスタムモデルはありますか?カスタム データから抽出するのがテキストだけの場合は、再実装しQAbstractItemModel::data(const QModelIndex& index, int role) const、どの列であるかをクエリする方が簡単indexです。それがカスタム データ列である場合は、カスタム データ テキストで表示ロールを返します。それ以外の場合は、親の実装を呼び出すだけです。

于 2013-05-02T14:19:31.123 に答える