C++ C++;成员变量类Q_属性在QML中不可用

C++ C++;成员变量类Q_属性在QML中不可用,c++,qt,qml,C++,Qt,Qml,我正在尝试创建一个新的QMLQQuick对象,该对象将包含QQuickPaintedItem的子对象 是我的C++代码的一个缩短部分 // PDFDocument.h // class PDFDocument : public QQuickItem { public: Q_OBJECT Q_PROPERTY( PDFPageView* pageView READ getPageView ) PDFDocument( QQui

我正在尝试创建一个新的QML
QQuick
对象,该对象将包含
QQuickPaintedItem
的子对象

是我的C++代码

的一个缩短部分
// PDFDocument.h //
    class PDFDocument : public QQuickItem
    {
    public:
        Q_OBJECT

        Q_PROPERTY( PDFPageView* pageView READ getPageView )

      PDFDocument( QQuickItem* parent = nullptr );
        ~PDFDocument();

      PDFPageView* getPageView() { return &m_pageView; }

      private:
        PDFPageView m_pageView;
    };

//PDFDocument.cpp//
    PDFDocument::PDFDocument( QQuickItem* parent /*= nullptr*/ )
        :QQuickItem( parent )
    {
    }

//PDFPageView.h//
    class PDFPageView : public QQuickPaintedItem
    {
    public:
        Q_OBJECT

        Q_PROPERTY( int dpi MEMBER m_dpi NOTIFY dpiChanged )

    Q_SIGNALS:
        void dpiChanged();

    public:
        PDFPageView( QQuickItem* parent = nullptr );
        ~PDFPageView();

      void paint( QPainter* painter_p );

    private:
      int m_dpi = 144;  //default dpi to 144
    };
接下来是实际的QML代码段

    PDFDocument
    {
        id: pdfDocument

        anchors
        {
            fill: parent
            centerIn: parent
        }

        pageView.dpi: 200   //Invalid grouped property access
    }
该类型也在引擎中注册

qmlRegisterType<PDFDocument>( "Nordco.TechPubs", 1, 0, "PDFDocument" );
qmlRegisterType<PDFPageView>( "Nordco.TechPubs", 1, 0, "PDFPageView" );
qmlRegisterType(“Nordco.TechPubs”,1,0,“PDFDocument”);
qmlRegisterType(“Nordco.TechPubs”,1,0,“PDFPageView”);
由于某些原因,我在QML中遇到无效的分组属性访问错误。我在qml代码段中用注释对其进行了标记


我缩短了代码,因为我有很多,但是如果我忘记显示任何内容,我可以编辑这篇文章。我觉得我在这里错过了一些简单的东西,但似乎不能得到一个有用的错误。有什么想法吗?

我似乎需要在声明Q_属性时包含我的名称空间,因为它是一个宏。现在,自定义成员变量是可访问的

Q_PROPERTY( TechnicalPublications::PDFPageView* pageView READ getPageView )

当然,为了缩短这个问题,我排除了我的类所存在的名称空间

你的问题是什么,或者问题是什么?@folibis抱歉,我本应该用更多的评论来澄清这个问题。用…编辑问题。。。由于某些原因,我在QML中遇到无效的分组属性访问错误。我在qml代码片段中用注释标记了它。
pageView{dpi:200}
有效吗?@Amfasis不幸的是,没有。这是同一个问题。还有一个问题:你使用名称空间吗?您应该在Q_属性中添加完整的名称空间