Похоже, придется написать свой интерфейс.
не придется.  Нужно воспользоваться плагиной системой Qt5
//============================================ in header
class QClassPlugin: public QPublicClass
{ 
   Q_OBJECT
    // if Qt5     NEW PLUGIN SYSTEM
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
    Q_PLUGIN_METADATA(IID "your_plugin_id" FILE "class_plugin.json")
#endif
public:
    QClassPlugin();
    .........
};
//============================================ in CPP
// if Qt4     OLD PLUGIN SYSTEM
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
    Q_EXPORT_PLUGIN2(your_plugin_id, QClassPlugin)
#endif
class_plugin.json
{
    "Keys": [ "your_plugin_id" ]
}