是否可以向QStandardItem添加自定义类?

时间:2014-01-23 03:48:20

标签: c++ qt

我想知道是否可以向QStandardItem添加自定义类。我现在做这样的事情

QStandardItem* item_text=  new QStandardItem();
item_text->setText(msg.c_str());

现在假设我有一个没有从QVariant继承的类foo是否可以将它存储在QStandardItem中?如果是这样,我将如何存储然后检索它?

1 个答案:

答案 0 :(得分:0)

我相信你要找的是

    QStandardItem::setData ( const QVariant & value, int role = Qt::UserRole + 1 )

你可以使用这样的东西:

   QStandardItem item;
   item.setData(QVariant(MyClass),Qt::UserRole);

所以我认为您需要做的是将自定义类强制转换为QVariant(如上所示)并设置相应的角色,就像我使用UserRole一样。 然后在提取数据时,您可以将其类型转换回自定义类。

此外,您可以通过增加它来保存在userrole中:

  item.setData(QVariant(MyClass),Qt::UserRole + 1000);
  item.setData(QVariant(MyNewClass),Qt::UserRole + 1001);

等等。   希望能帮助到你。 :)