BTW, new Qt4.3's QWizards's field system (see QWizard::field()) looks really useful. It is a clean version of approach to the one we discussed last year -- where we refer to pages/data widgets by name (or ID) and not by pointer.
For certain purposes I also value the freedom of choosing between QWizardPage::nextId() and QWizard::nextId().
Implementing wizards (now in KDE: assistants) wes always less exciting than core functionality of an app. Now there are chances for some cleaner code.
Maybe one missing stuff is single operation for setting and retrieving data to/from fields:
void QWizard::setFields(const QMap<QString, QVariant>& values); QMap<QString, QVariant> QWizard::fields() const;
Thus, we could utilize the model/view approach a bit more: