本文整理汇总了C++中QScriptValue::toObject方法的典型用法代码示例。如果您正苦于以下问题:C++ QScriptValue::toObject方法的具体用法?C++ QScriptValue::toObject怎么用?C++ QScriptValue::toObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QScriptValue
的用法示例。
在下文中一共展示了QScriptValue::toObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: iterateString
void tst_QScriptValueIterator::iterateString()
{
QScriptEngine engine;
QScriptValue str = QScriptValue(&engine, QString::fromLatin1("ciao"));
QVERIFY(str.isString());
QScriptValue obj = str.toObject();
QVERIFY(obj.property("length").isNumber());
int length = obj.property("length").toInt32();
QCOMPARE(length, 4);
QScriptValueIterator it(obj);
QHash<QString, QScriptValue> stringProperties;
bool iteratedThruLength = false;
while (it.hasNext()) {
it.next();
const QString name = it.name();
if (name == QString::fromLatin1("length")) {
QVERIFY(it.value().isNumber());
QCOMPARE(it.value().toInt32(), length);
QCOMPARE(it.flags(), QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration | QScriptValue::Undeletable);
QVERIFY2(!iteratedThruLength, "'length' appeared more than once during iteration.");
iteratedThruLength = true;
continue;
}
QVERIFY2(!stringProperties.contains(name), "property appeared more than once during iteration.");
stringProperties.insert(name, it.value());
QCOMPARE(it.flags(), obj.propertyFlags(name));
QVERIFY(it.value().strictlyEquals(obj.property(name)));
}
QVERIFY(iteratedThruLength);
QCOMPARE(stringProperties.size(), length);
// And going backwards
iteratedThruLength = false;
stringProperties.clear();
it.toBack();
while (it.hasPrevious()) {
it.previous();
const QString name = it.name();
if (name == QString::fromLatin1("length")) {
QVERIFY(it.value().isNumber());
QCOMPARE(it.value().toInt32(), length);
QCOMPARE(it.flags(), QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration | QScriptValue::Undeletable);
QVERIFY2(!iteratedThruLength, "'length' appeared more than once during iteration.");
iteratedThruLength = true;
continue;
}
QVERIFY2(!stringProperties.contains(name), "property appeared more than once during iteration.");
stringProperties.insert(name, it.value());
QCOMPARE(it.flags(), obj.propertyFlags(name));
QVERIFY(it.value().strictlyEquals(obj.property(name)));
}
}