组件 X 的超类型未知,其某些属性未经验证
The super type of the component X is unknown, some of its properties are not validated
我是黑莓10开发者。我使用Momentics IDE开发黑莓10应用程序
我的项目包括以下 4 个文件:
-
(x.h)
#ifndef X_H #define X_H #include "Y.h" class X: public Y { Q_OBJECT public: explicit X (QObject *parent = 0); /*...*/ #endif
-
(耶)
#ifndef Y_H #define Y_H #include <QObject> #include <QtGui/QSortFilterProxyModel> class Y : public QSortFilterProxyModel { Q_OBJECT public: explicit Y (QObject *parent = 0); /*...*/ #endif
-
(主要.cpp)
#include "x.h" #include "xModel.h" /*...*/ qmlRegisterType<X>("com.lib", 0, 1, "X"); qmlRegisterType<xModel>("com.lib", 0, 1, "xModel"); /*...*/
-
(主.qml)
import com.lib 0.1 import bb.cascades 1.0 Page { /*...*/ attachedObjects: [ X { /* INFOS: The super type of the component X is unknown, some of its properties are not validated.*/ id: myclass sourceModel: xModel }, xModel { id: xMyModel } ] /*...*/ }
但是,当我在 Momentics IDE 中构建项目时,我看到该错误,但是如果我在 QtCreator 中构建此代码(导入 QtQuick 而不是 bb.cascades),那么我看不到这样的错误:
errors: (asset:///main.qml:112:12: Cannot assign to non-existent property "sourceModel")
bb::cascades::QmlDocument:createRootObject document is not loaded or has errors, can't create root
我该怎么办?
您需要
为希望自定义组件具有的每个属性添加Q_PROPERTY宏,正如其他人已经评论的那样,您应该提供更多代码来真正帮助您。
无论如何,要添加源模型属性,您的头文件应如下所示
#ifndef X_H
#define X_H
#include "Y.h"
class X: public Y {
Q_OBJECT
Q_PROPERTY(typeOfSourceModel sourceModelAccessor WRITE setSourceModel READ sourceModel NOTIFY sourceModelChanged)
public:
explicit X (QObject *parent = 0);
/*...*/
#endif
其中 sourceModelAccessor 是 sourceModel 属性的访问器,setSourceModel 是突变器,sourceModelChanged 是信号。
看看 http://qt-project.org/doc/qt-4.8/properties.html
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 正在尝试了解输入验证循环
- C++概念:如何使用'concept'检查模板化结构的属性?
- 如何在C++中检查2D数组中负值的输入验证
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 通过指向指针数组的指针访问子类的属性
- MSVC是否支持C++11样式的属性而不是__declspec
- LibGit2 SSH身份验证失败
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 类的C++属性似乎已重新初始化
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- constexpr上下文中std::initializer_list的验证
- Qt Quick-如何仅从c++代码与qml属性交互
- 用概念检查属性的类型
- C++如何将同一类的实例作为属性
- 正在验证c++中用户的整数输入
- 加密++验证大文件签名
- C++卡验证问题
- 如何在使用 gdbus-codegen 框架时验证 D-Bus 属性
- 组件 X 的超类型未知,其某些属性未经验证