In Listview, ich habe 100 von Artikeln mit "Delegat", nehmen Sie an, dass listview bereits aufgefüllten Wert angezeigt. Nun möchte ich bereits angezeigte Werte in der QML-Listenansicht aus C++ extrahieren. Wie erreiche ich das? Hinweis: Ich kann Datenmodell nicht direkt zugreifen, da ich Filtration tue in Delegaten versteckt VariableZugriff auf QML ListView-Delegatelemente aus C++?
/*This is not working code, Please note,
delegate will not display all model data.*/
ListView
{
id:"listview"
model:datamodel
delegate:{
if(!hidden)
{
Text{
text:value
}
}
}
//Can I access by using given approach?
QObject * object = m_qmlengine->rootObjects().at(0)->findChild<QObject* >("listview");
//Find objects
const QListObject& lists = object->children();
//0 to count maximum
//read the first property
QVarient value = QQmlProperty::read(lists[0],"text");
Sie sollten mindestens mit einem Code beginnen, das funktioniert. Außerdem sollten Sie den Zugriff von C++ auf QML auf ein Minimum beschränken, ganz sicher nicht in diesem Fall. Verwenden Sie ein C++ - Modell, wenn Sie die Modelldaten auf der C++ - Seite möchten. – dtech
Ich mache Automatisierungstests, ich kann keine Modelldaten für die Validierung verwenden, daher muss ich nach der Anzeige der Listenansicht in qml die Daten von qml nach C++ extrahieren und validieren. – Ashif
Ich bezweifle, dass es funktioniert, wie Sie erwarten, Sie haben bessere Chancen, die Listview in QML zu iterieren und den Text an C++ senden, indem Sie es an eine Slot-Funktion übergeben. – dtech