我想知道是否可以向 QStandardItem 添加自定义类。我目前正在做这样的事情
QStandardItem* item_text= new QStandardItem();
item_text->setText(msg.c_str());
现在假设我有一个类 foo
没有继承自 QVariant 是否可以将它存储在 QStandardItem 中?如果是这样,我将如何存储它然后检索它??
最佳答案
我相信你要找的是
QStandardItem::setData ( const QVariant & value, int role = Qt::UserRole + 1 )
你可以使用,像这样:
QStandardItem item;
item.setData(QVariant(MyClass),Qt::UserRole);
所以我认为您需要做的是将您的自定义类强制转换为 QVariant(如上所示)并设置相应的角色,就像我使用 UserRole 一样。 然后在提取数据时,您可以将其类型转换回您的自定义类。
你也可以通过递增它来保存用户角色:
item.setData(QVariant(MyClass),Qt::UserRole + 1000);
item.setData(QVariant(MyNewClass),Qt::UserRole + 1001);
等等。 希望能帮助到你。 :)
关于c++ - 是否可以向 QStandardItem 添加自定义类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298964/