如何解决从包含QUuid的QVariantList转换为QList <Quuid>
我有一个对象,其属性声明如下:
Q_PROPERTY(QList<Quuid> topics READ topics WRITE setTopics)
我的一位同事实施了他的“应用更改”方法,如下所示:
void GetChanges(QList<QString>& names,QList<QVariant>& values)
要将更改保存到该数据结构中,我将Uid列表转换为变体列表:
QSet<QUuid> topics;
QVariantList uidList;
for (const QUuid& uid : topics)
uidList.append(uid);
names.append("topics");
values.append(QVariant(uidList));
在他的代码中,这就是他设置属性值的方式:
item->setProperty(propName_.toLocal8Bit(),newValue_);
对于诸如QString
,int
等标准类型,它可以正常工作,但是在这种情况下,“ setProperty”调用现在失败了,因为QT无法转换{{ 1}}到为属性指定的类型(QVariantList
)。我可以通过将属性的类型更改为QVariant<QUuid>
来使其工作,但是现在这样做,没人知道该属性实际上需要什么类型,这很容易出错。
是否有针对此问题的“清洁”解决方案?我可以指定具有QList<QUuid>
的{{1}}到QVariantList
的自定义转换器吗?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。