QtScript 스크립트의 값을 확인하는 데 문제가있었습니다. 발리의 기능은 다음과 같이 보았다 :QVariant를 네이티브 QtScriptValue (숫자, 문자열 등)로 변환하는 방법
function isValueInvalid(value) {
return typeof value=="undefined" || value == null || value == "" || value == "X";
}
문자열 "X"
도 내 설정에서 유효하지 않은 값입니다. 값은 다음과 같이 몇 가지 객체에 추가됩니다
someQtscriptValue.setProperty(name, myQtScriptEngine.newVariant(someQVariant));
이제 일이 문자열로
"undefined"
로 변환 값이 지속적으로
typeof
검사를 통과 한 것입니다. 그래서 테스트 디버그 출력을 추가했습니다. 나는 스크립트의 전체
someQtscriptValue
인쇄 :
// This is qtscript code:
print("Validating row "+JSON.stringify(someQtscriptValue));
그리고 그 결과는 혼란 (단축, 그것은 모두 같은 모습)입니다 : 나는 또한 각각의 값에 대한 몇 가지 정보를 인쇄하기로 결정
Validating row {"SJZ_A":{},"SJZ_B":{},"SJZ_C":{},"SJZ_D":{},"SJZ_E":{}}
:
var propName = "name of one of the properties";
var isValid = !isValueInvalidCEPS(someQtscriptValue[propName]);
print("someQtscriptValue[\""+propName+"\"] = "+someQtscriptValue[propName]+" ("+(isValid?"valid":"invalid")+") type="+(typeof someQtscriptValue[propName]));
그리고 이것은 더욱 놀라운 :
someQtscriptValue["name1"] = ULSE (valid) type=object
someQtscriptValue["name2"] = 22 (valid) type=object
someQtscriptValue["name3"] = undefined (valid) type=object
분명히 내가 QScriptValue
을 QVariant
에서 만들면 "정의되지 않은"값을 포함한 모든 값이 유형을 객체로 가지기 때문에 객체처럼 동작합니다.
그래서 QVariant에서 QScript 값을 만드는 올바른 방법은 무엇입니까?