我在用着Qt.createQmlObject()
创建一个QML
来自文件的对象。如果文件损坏,QML 会输出如下所示的消息:
Qt.createQmlObject(): failed to create object:
qrc:/graphics/inline:5:2: Expected token
}'`
我想捕获该消息以告诉用户他的文件已损坏。
我正在尝试使用中提供的第三个参数Qt.createQmlObject()
但我不明白它是如何工作的。 wiki 很好地描述了该函数,但没有给出任何利用它的示例:
https://wiki.qt.io/QML_Dynamic_Objects#Creation_of_Dynamic_QML_Objects https://wiki.qt.io/QML_Dynamic_Objects#Creation_of_Dynamic_QML_Objects
第三个参数是一个字符串,用作 Qt Creator IDE 中的错误报告中的文件名。例如,如果在加载的 QML 字符串中遇到错误,则会在文件名为 name 的文件中报告为错误。在调用文件名时,作为字符串必须用双引号引起来。
您需要像这样使用“try-catch”块:
try {
var newObject = Qt.createQmlObject('import QtQuick 2.0; Rectangle11 {color: "red"; width: 20; height: 20}',
this,
"dynamicSnippet1");
} catch (error) {
print ("Error loading QML : ")
for (var i = 0; i < error.qmlErrors.length; i++) {
print("lineNumber: " + error.qmlErrors[i].lineNumber)
print("columnNumber: " + error.qmlErrors[i].columnNumber)
print("fileName: " + error.qmlErrors[i].fileName)
print("message: " + error.qmlErrors[i].message)
}
}
这在官方文档 http://doc.qt.io/qt-5/qml-qtqml-qt.html#createQmlObject-method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)