Problem QVariant in QStringList umzuwandeln
-
Hallo zusammen,
ich habe eine Kamera und eine dazugehörige ActiveX Steuerung und will diese in Qt einbinden. Dazu mache ich Folgendes:
QAxWidget *activeX = new QAxWidget(); activeX->setControl("CAMCTRL.LVCamCtrl.3"); activeX->dynamicCall("Connect(11,0,6,2,xxx.xxx.xxx.xxx)");
Das funktioniert soweit auch alles ganz gut. Die Verbindung zu Kamera funktioniert einwandfrei. Ich kann auch anschließend mit dynamicCall() weitere Funktionen aufrufen, alles kein Problem. Wenn ich allerdings
QVariant var = activeX->dynamicCall("GetImage(0)");
aufrufe um ein Bild von der Kamera zu erhlaten komme ich nicht weiter. GetImage() liefert ein 2D-Array. Bei einem Fehler würde es mir einen Error code (short) zurückgeben. Var.type() liefert mir als Ergbnis aber QVariantList, was darauf hindeutet, dass ich wirklich ein Bild zurück bekomme. Aber wenn ich versuche das Bild (bzw. 2D array) dann in QVariantList umzuwandeln, kriege ich nur eine leere Liste heraus. Hat jemand eine Idee woran das liegen könnte?
Mein QVariant versuche ich so:
QStringList image = var.toStringList();
in die die Liste umzuwandeln? Kann es sein, dass das 2D array Probleme macht, weil QStringList ja nur 1D ist?
Für Anregungen wäre ich sehr dankbar.
Los-locos
-
QStringList != QVariantList!!!!
QVariant::toList() liefert eine QVariantList zurück. Eben eine Liste mit lauter QVariants.
QStringList ist eine Liste mit lauter QStrings.
Was genau liefert denn dasactiveX->dynamicCall("GetImage(0)");
zurück?
Und warum muss das unbedingt in einen QVariant rein? Kannst du nicht mit dem eigentlichen Typen weiter machen?
Ich denke QVariant bringt dir in dem Fall gar nix...
-
Ups, das hab ich wohl was falsches gepostet. Ich habe natürlich auch
QVariantList image = var.toList();
versucht, aber das hat auch nicht geklappt. canConvert() hat gesagt, dass ich das Ergebnis auch in eine QStringList umwandeln kann, deshlab hatte es auch mal so versucht. Aber hat leider beides nicht geklappt.
dynamicCall() liefert ein QVariant zurück, deshlab nutze ich QVariant. Wenn ich da irgendwas anderes nutzen könnte wär das natürlich super.
Die Funktion GetImage(0) liefert laut Doku: "A 2-dimensional array with image pixels. Pixel format 16-bit unsigned integer"