I use QMetaObject extensively to get information about an object's properties in a scheme to load and save objects to an XML structure.
Thanks to that system, I can automatically generate XML key names from the property names, as well as the type.
I can then read the XML, and automatically convert the contained strings to the correct type, and set them as a property.
I the other direction, I read the properties, convert them to a locale-independent string, and write them to the XML.
The scheme took a while to set up, but now adding a new object to the scheme is a breeze, and changes to name or type of an XML parameter happens in exactly one place.
Thanks to QMetaEnum, I can even save enum value names, which makes the XML more user-readable.