gpt4 book ai didi

qt - 捕获 QML 错误信息

转载 作者:行者123 更新时间:2023-12-01 22:59:12 24 4
gpt4 key购买 nike

我正在使用 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

The third argument is a string used as a file name in error reporting in the Qt Creator IDE. For example if an error is encountered in loaded QML string it is reported as one in the file with filename name. In invocation filename as a string has to be surrounded by double quotes.

最佳答案

您需要像这样使用“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)
}
}

这在 official documentation 中有描述

关于qt - 捕获 QML 错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38049330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com