Qt快-如何使用C++类从QQualPruttId中继承QML接口?
我是Qt5.13.0的新手。在VisualStudio2019项目中,我需要在qml接口中显示从QQuickPaintedItem类继承的自定义绘制项。自定义项写入一个名为WQTMaseAgEnter的C++类,声明如下: WQTMessageItem类:公共QQuickPaintedItem { Q_对象 Q_PROPERTYbool rightAligned读取isRightAligned写入设置rightAligned通知rightAligned更改 信号: 无效右对齐更改; 公众: WQTMessageItemQQuickItem*父项=0; 无效油漆工*油漆工; 布尔是右对齐的; void setRightAligned bool righAligned; 私人: 布尔m_右对齐; }; 在C++方面,我试图用这种方式向QML引擎声明上面的类: QQmlContext*pContext=engine.rootContext; std::unique_ptr pMessageItemnew WQTMessageItem; pContext->setContextPropertyWQTMessageItem,pMessageItem.get; pMessageItem.release; 最后,我尝试在qml文件中声明的ListView中使用上述自定义项,方法如下: 列表视图 { anchors.bottom:controls.top 下边距:2 anchors.top:parent.top id:气球视图 代表:WQTMessageItem { archors.right:索引%2==0?未定义:parent.right 身高:60 右对齐:索引%2==0?false:true 宽度:气球宽度 } 型号:气球型号 间距:5 宽度:parent.width } 不幸的是,这不起作用。我的应用程序进行编译和链接,但在运行时立即关闭,并显示以下错误消息:Qt快-如何使用C++类从QQualPruttId中继承QML接口?,c++,qt,qml,qt-quick,qqmlengine,C++,Qt,Qml,Qt Quick,Qqmlengine,我是Qt5.13.0的新手。在VisualStudio2019项目中,我需要在qml接口中显示从QQuickPaintedItem类继承的自定义绘制项。自定义项写入一个名为WQTMaseAgEnter的C++类,声明如下: WQTMessageItem类:公共QQuickPaintedItem { Q_对象 Q_PROPERTYbool rightAligned读取isRightAligned写入设置rightAligned通知rightAligned更改 信号: 无效右对齐更改; 公众: WQ
QQmlApplicationEngine failed to load component
qrc:/main.qml:33 WQTMessageItem is not a type
我试图自己找到解决办法,但没有成功。有人能解释一下我应该如何修改我的上面的代码以允许它工作吗?< /P> < P>你必须使用函数在QML系统中登记C++类型。可以找到一个例子
方法意在导出一个值,不是从C++到QML的类型。