本文整理汇总了C++中ModelNode::propertyNames方法的典型用法代码示例。如果您正苦于以下问题:C++ ModelNode::propertyNames方法的具体用法?C++ ModelNode::propertyNames怎么用?C++ ModelNode::propertyNames使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelNode
的用法示例。
在下文中一共展示了ModelNode::propertyNames方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createRect
void TestPropertyEditor::createRect()
{
try {
std::auto_ptr<QWidget> widget(new QWidget());
QScopedPointer<Model> model(Model::create("import Qt 4.6\n Item {}"));
QVERIFY(model.data());
QScopedPointer<TestView> view(new TestView);
QVERIFY(view.data());
model->attachView(view.data());
setupPropertyEditor(widget.get(), model.data());
QVERIFY(view->rootModelNode().isValid());
//selectThrough(view->rootModelNode());
ModelNode childNode = view->createModelNode("Qt/Rectangle", 4, 6);
view->rootModelNode().nodeListProperty("data").reparentHere(childNode);
QVERIFY(childNode.isValid());
QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(childNode));
QVERIFY(childNode.parentProperty().parentModelNode() == view->rootModelNode());
QCOMPARE(childNode.type(), QString("Qt/Rectangle"));
QVERIFY(childNode.id().isEmpty());
childNode.setId("Rect01");
QCOMPARE(childNode.id(), QString("Rect01"));
childNode.variantProperty("x") = 100;
QCOMPARE(QmlObjectNode(childNode).instanceValue("x").toInt(), 100);
childNode.variantProperty("y") = 100;
QCOMPARE(QmlObjectNode(childNode).instanceValue("y").toInt(), 100);
childNode.variantProperty("width") = 100;
QCOMPARE(QmlObjectNode(childNode).instanceValue("width").toInt(), 100);
childNode.variantProperty("height") = 100;
QCOMPARE(QmlObjectNode(childNode).instanceValue("height").toInt(), 100);
selectThrough(childNode);
QCOMPARE(childNode.propertyNames().count(), 4);
QCOMPARE(childNode.variantProperty("scale").value(), QVariant());
} catch (Exception &) {
QFAIL("Exception thrown");
}
}
示例2: selectThrough
static void selectThrough(ModelNode node, QWidget* propWidget = 0)
{
QVERIFY(node.isValid());
int numberOfProperties = node.propertyNames().count();
QList<AbstractProperty> properties = node.properties();
node.view()->clearSelectedModelNodes();
node.view()->selectModelNode(node);
QString name = node.id();
qApp->processEvents();
QTest::qSleep(100);
qApp->processEvents();
QTest::qSleep(100);
qApp->processEvents();
inspectPropertyEditor(node, propWidget);
//selecting should not effect any properties at all!
QCOMPARE(node.propertyNames().count(), numberOfProperties);
foreach (const AbstractProperty &property, properties)
if (property.isVariantProperty()) {
QCOMPARE(property.toVariantProperty().value(), node.variantProperty(property.name()).value());
}
QList<ModelNode> childNodes = node.allDirectSubModelNodes();
foreach (const ModelNode &childNode, childNodes)
selectThrough(childNode, propWidget);
}
示例3: propertiesToQml
QString QmlTextGenerator::propertiesToQml(const ModelNode &node, int indentDepth) const
{
QString topPart;
QString bottomPart;
QStringList nodePropertyNames = node.propertyNames();
bool addToTop = true;
foreach (const QString &propertyName, m_propertyOrder) {
if (QLatin1String("id") == propertyName) {
// the model handles the id property special, so:
if (!node.id().isEmpty()) {
QString idLine(indentDepth, QLatin1Char(' '));
idLine += QLatin1String("id: ");
idLine += node.id();
idLine += QLatin1Char('\n');
if (addToTop)
topPart.append(idLine);
else
bottomPart.append(idLine);
}
} else if (propertyName.isEmpty()) {
addToTop = false;
} else if (nodePropertyNames.removeAll(propertyName)) {
const QString newContent = propertyToQml(node.property(propertyName), indentDepth);
if (addToTop)
topPart.append(newContent);
else
bottomPart.append(newContent);
}
}
foreach (const QString &propertyName, nodePropertyNames) {
bottomPart.prepend(propertyToQml(node.property(propertyName), indentDepth));
}