我想知道是否有可能向QStandardItem添加自定义类。我目前正在做这样的事情
QStandardItem* item_text= new QStandardItem();
item_text->setText(msg.c_str());
现在假设我有一个没有从QVariant继承的类
foo
,可以将其存储在QStandardItem中吗?如果是这样,我将如何存储它然后检索它? 最佳答案
我相信你正在寻找的是
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);
等等。
希望能帮助到你。 :)
关于c++ - 是否可以向QStandardItem添加自定义类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21298964/