QUiLoader: load aus QBuffer klappt nicht?

Alles rund um die Programmierung mit Qt
Antworten
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

QUiLoader: load aus QBuffer klappt nicht?

Beitrag von otternase »

Hallo

ich möchte ein Widget mit dem QUiLoader laden. Die ui-Beschreibung wird aus einem Text erzeugt, ich will also nicht von dem Device QFile laden, sondern aus einem vorhandenen String. Dafür hatte ich QBuffer ausgesucht.

Es klappt jedoch nicht und dank mangelnder Kenntnisse weiss ich jetzt nicht mehr weiter?

Der Codeausschnitt:

Code: Alles auswählen

 QUiLoader loader;
 QBuffer buffer;
 buffer.open(QBuffer::ReadWrite);
 buffer.write("<ui version=\"4.0\"><class>");
 buffer.write(attribut.toAscii()); // attribut ist ein gültiger QString
 buffer.write("</class>");
 buffer.write(widgetPrototypes.value(attribut).toAscii()); // widgetPrototypes iist eine QMap<QString, QString>
 buffer.write("<resources/><connections/></ui>");
qDebug() << buffer.data();
 QWidget *columnWidget = loader.load(&buffer, 0);
qDebug() << columnWidget;
 buffer.close();
Ausgabe:
"<ui version="4.0"><class>attA</class><widget class="QLabel" name="QLabelA" ><property name="text"><string>hallo</string></property></widget><resources/><connections/></ui>"
QObject(0x0)
Warum ist bekomme ich vom QUiLoader einen Nullzeiger zurück?
Ist QBuffer überhaupt das richtig IODevice für diesen Zweck?

Vielen Dank
Markus
otternase
Beiträge: 62
Registriert: 25. Januar 2008 12:20

Beitrag von otternase »

sorry having bothered you:

es fehlte die kleine, aber entscheidende Zeile

buffer.seek(0);
Antworten