I always make the dll's with one interface class.

e.g.

dll_mywidget.hpp
dll_mywidget.cpp

the class dll_mywidget are just call to another class dll_mywidget_impl

The dll_mywidget_impl class is the one that include the ui file...basically you make dll_mywidget_impl as you would make a normal widget....

and in dll_mywidget.cpp you decide which parts to make public in the dll...dont forget the class you want to make public in the dll, needs special DLL declaration (DLL_EXPORT) in order to work.

jan