组件 X 的超类型未知,其某些属性未经验证

The super type of the component X is unknown, some of its properties are not validated

本文关键字:属性 验证 超类 类型 未知 组件      更新时间:2023-10-16

我是黑莓10开发者。我使用Momentics IDE开发黑莓10应用程序

我的项目包括以下 4 个文件:

  1. (x.h)

    #ifndef X_H
    #define X_H
    #include "Y.h"
    class X: public Y {
        Q_OBJECT
    public:
        explicit X (QObject *parent = 0);
    /*...*/
    #endif
    
  2. (耶)

    #ifndef Y_H
    #define Y_H
    #include <QObject>
    #include <QtGui/QSortFilterProxyModel>
    class Y : public QSortFilterProxyModel {
      Q_OBJECT
    public:
      explicit Y (QObject *parent = 0);
    /*...*/
    #endif
    
  3. (主要.cpp)

    #include "x.h"
    #include "xModel.h"
    /*...*/
    qmlRegisterType<X>("com.lib", 0, 1, "X");
    qmlRegisterType<xModel>("com.lib", 0, 1, "xModel");
    /*...*/
    
  4. (主.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