我想知道是否可以向QStandardItem添加自定义类。我现在做这样的事情
QStandardItem* item_text= new QStandardItem();
item_text->setText(msg.c_str());
现在假设我有一个没有从QVariant继承的类foo
是否可以将它存储在QStandardItem中?如果是这样,我将如何存储然后检索它?
答案 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);
等等。 希望能帮助到你。 :)