2015-11-09 2 views

ответ

0

См. Interacting with QML Objects from C++.

Если вы используете QQmlEngine:

// Using QQmlComponent 
QQmlApplicationEngine engine; 
... 
QObject * root = engine.rootObjects().first(); 

Если вы используете QQuickView:

QQuickView view; 
... 
QObject * root = view.rootObject(); 

Получение text1:

// Update Qml file 
Text 
{ 
    id: text1 
    text: "Initial" 
    objectName: id 
} 

// Find text1 in c++ 
QObject * o1 = root->findChild<QObject *>(QStringLiteral("text1")); 
QQuickItem *text1 = qobject_cast<QQuickItem*>(o1); 

// Set property 
text1->setProperty("text", QVariant()); 
+0

Похоже, двигатель не имеет rootObjects() член, только rootContext() – details

+0

Да, 'rootObjects()' появился в [QQ mlAllicationEngine] (http://doc.qt.io/qt-5/qqmlapplicationengine.html). Я фиксировал выборки. –