2015-11-09 83 views
0

的財產我曾嘗試與設置使用C QML對象++

widget->setProperty("text1Text", QVariant("After...")); 
在我的C++

, 和

Button 
{ 
    property alias text1Text: text1.text 
    Text 
    { 
     id: text1 
     text: "Initial" 
    } 
} 

在QML。 小部件是一個QQuickWidget對象。我究竟做錯了什麼?

回答

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)。我修正了樣品。 –

相關問題