Describing an interface in XML is easy enough, and something zem can help with. Ideally a single xml file would be used for each page, allowing inclusion by a single zem file, as below:

<zem>
    <include>page_one.xml</include>
    <include>another_page.xml</include>
</zem>

These pages in turn, would describe widgets as below.

<label>
    <width> 100 </width>
    <height> 30 </height>
    <text> Some sort of text </text>
</label>

The example above would yield a single QLabel of 100 width, 30 height, and with the text "Some sort of text". If you like the idea, rather than actually coding, feel free to download zem here.