Unsolved Erstellung von ListElementen für Tabelle
-
Hallo,
ich bin gerade an einem Punkt wo mir der Ansatz für die Umsetzung fehlt.
Ich bekomme von einer Abfrage im Netzwerk QNetwortDatagram Elemente zurück von jedem Client der geantwortet hat. So würde es jeweils einen Eintrag im Vector geben mit QString "name", QString "adresse" und integer "port".
Jetzt versuche ich die Antworten in einer Tabelle in QML darzustellen. Mein erster Ansatz war die Daten in einen Vector aus einem eigenen struct[] zu schreiben und diesen dann durchzugehen, was an der Einbindung des struct gescheitert ist.
Als nächstes habe ich versucht die QNetworkDatagramme in einen entsprechenden Vector zu packen und diese verarbeiten was QML garnicht wollte .
Als dritter Versuch habe ich einen Vector aus QStringlist Elemten versucht was mir zwar die Listen ins QML bringt aber die Weiterverarbeitung nicht leichter gemacht hat weil ich den Vector nicht sauber durchlaufen konnte.
Dazu kommt das Problem das ich unschlüssig bin auf welchem Wege es sinnvoll ist die Daten an die QML zu übergeben um daraus ListElemente erzeugen zu lassen.
Ich würde mich freuen wenn mir jemand einen Denkanschoß geben könnte auf welchem Wege die sinnvolle Übergabe der Werte erfolgen sollte (die Daten sind 2 x Strings und 1 x Integer) um aus diesen ListElemente zu erzeugen.
Gruß
Marco
-
...so ich bin einen kleinen Schritt weiter. Um Doppelungen, meine Anfrage auf dem Socket und nicht korrekt formatierte Antworten auszufiltern habe ich die Daten verarbeitet und bekomme jetzt eine JSON Datei raus die alle Geräte die geantwortet haben exakt 1 x enthält.
Bleibt aktuell aber noch die Frage wie ich aus der JSON Datei eine Tabelle füllen kann, dazu schweigt sich die Dokumentation leider bisher aus.
Vielleicht hat ja noch jemand einen Tipp für mich wie ich das umsetzen könnte.
Gruß
Marco
-
hmmm so langsam gehen mir die Ideen aus.
Ich habe testweise eine Klasse "mclient" erstellt und im Receiver ein QVector<mclient> den ich mit mclient-Objekten der Antworten gefüllt habe (1 Objekt je Antwort mit den 3 Properties "name" "address" und "port" . Das hat auch funktioniert nur komme ich an die Daten außerhalb des Receivers (im QML wie geplant z.B.) nicht ran.
Beim Versuch die Klasse mit Q_DECLARE_METATYPE(mclient) dem MOC bekannt zu machen (wie auch beim Versuch die einzelnen Clients jeweils in einem Struct zu speichern und diesem bekannt zu machen) kommen massig Fehler.
Ich kann mir irgendwie nicht vorstellen das es keine Möglichkeit gibt eine Anzahl an Datensätzen die jeweils aus 2 x String + 1 x Int bestehen an eine QML Weiterzugeben und diese Werte in eine Tabelle einzutragen...
Vielleicht hat ja noch jemand eine Idee was ich noch versuchen könnte... evtl. bin ich da heute auch schon einfach zu lange beim Versuchen und übersehe irgend etwas essenzielles hier.
Gruß
Marco