在FileDialog(QtQuick对象)中实例化一个c ++类,报告错误:无法将对象分配给属性

时间:2018-12-12 10:35:45

标签: qml qqmlcomponent qqmlcontext qqmlengine

代码:

//main.qml
import im.sniper.DgConfigFileHandler 1.0
import QtQuick.Dialogs 1.2
...
FileDialog{
    id: fileDlg
    DgConfigFileHandler {id: dgCfgFileHandler2}
}

我很好地编写了代码并运行,然后出现如下错误:

  

启用QML调试。仅在安全的环境中使用它。(抓取:这是另一个问题,您可以忽略)

     

QQmlApplicationEngine无法加载组件

     

qrc:/main.qml:22无法将对象分配给属性

其他组件,例如 Page Window Button ,可以实例化C ++类。怎么了?

1 个答案:

答案 0 :(得分:0)

这是因为某些组件继承了Item,它们拥有自己的容器,可用于存储FileDialog。有关详细信息,请参见官方文档,项目QML类型的属性dataFileDialog可以为{隐式添加任何基于 Item 的类型{3}}(如@folibis所指)。