2016-06-27 2 views
0

Qt.createQmlObject()을 사용하여 파일에서 QML 개체를 만듭니다.캐치 QML 오류 메시지

Qt.createQmlObject(): failed to create object: qrc:/graphics/inline:5:2: Expected token} '`나는 그의 파일이 손상되어 사용자에게하기 위해 메시지를 잡을 싶습니다

: 파일이 손상되는 경우, QML은 다음과 같습니다 메시지를 출력합니다.

Qt.createQmlObject()에 제공된 세 번째 인수를 사용하려고하지만 어떻게 작동하는지 이해할 수 없습니다. 위키 아주 잘 기능을 설명하지만 그것을 악용 어떤 예제를 제공하지 않습니다

https://wiki.qt.io/QML_Dynamic_Objects#Creation_of_Dynamic_QML_Objects

세 번째 인수는 Qt는 창조주 IDE에서 오류보고에서 파일 이름으로 사용되는 문자열입니다. 예를 들어,로드 된 QML 문자열에서 오류가 발생하면 파일 이름이 filename 인 파일에서 오류가보고됩니다. 문자열을 호출 할 때 filename을 큰 따옴표로 묶어야합니다.

답변

4

당신은 블록과 같은 "시도 - 캐치"를 사용해야합니다

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

에 설명되어 있습니다