все-таки, такой вариант реализую (гугл помог
В классе задать
Q_OBJECT
Q_PROPERTY(QString message READ message WRITE setMessage)
...
void setMessage(const QString &v) { mMessage = v; }
QString message() const { return mMessage; }
private:
QString mMessage;
и потом,
QDomDocument doc;
QDomElement root = doc.createElement(object->metaObject()->className());
doc.appendChild(root);
for(int i = 0; i < object->metaObject()->propertyCount(); i++)
{
QMetaProperty prop = object->metaObject()->property(i);
QString propName = prop.name();
if(propName == "objectName") continue;
QDomElement el = doc.createElement(propName);
QVariant value = object->property(propName.toLatin1().data());
QDomText txt = doc.createTextNode( value.toString() );
el.appendChild(txt);
root.appendChild(el);
}