gpt4 book ai didi

c++ - QMetaProperty::read: 无法处理未注册的数据类型 'TreeItem*'

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:17 24 4
gpt4 key购买 nike

Qt 不允许注册类模板?

我的类层次结构是

TreeItemTemplateBackend : public QObject

template<typename T>
TreeItem : public TreeItemTemplateBackend

这是我在 qml 中注册的内容:

qmlRegisterType<InspectorItem>("ge.gui", 1, 0, "InspectorItem");
qmlRegisterType<TreeItemTemplateBackend>("ge.gui", 1, 0, "TreeItemTemplateBackend");
qmlRegisterType<TreeItem<InspectorItem>>("ge.gui", 1, 0, "TreeItem");

我仍然遇到这个错误:

QMetaProperty::read:无法处理未注册的数据类型 TreeItem<InspectorItem>*对于属性“Inspector::root”

Inspector::root 是:

Q_PROPERTY(TreeItem<InspectorItem> * root READ root NOTIFY rootChanged)

最佳答案

当你想使用一个指向例如Q_PROPERTY 中的“ClassA”,您必须像这样注册它:

qRegisterMetaType<ClassA*>("ClassA*");

由于使用模板,解决方案对您来说可能更复杂,但希望这能为您指明正确的方向。

(与我的 other answer . source: 'jpn' 相同)

关于c++ - QMetaProperty::read: 无法处理未注册的数据类型 'TreeItem<InspectorItem>*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24231470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com