Seite 1 von 1

QUiLoader: load aus QBuffer klappt nicht?

Verfasst: 30. Juli 2008 14:51
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

Verfasst: 30. Juli 2008 15:39
von otternase
sorry having bothered you:

es fehlte die kleine, aber entscheidende Zeile

buffer.seek(0);