Как работать в QML через интерфейс класса?
Вообще чисто теоретически это возможно, но с ограничениями из-за принципа метасистемы Qt, а именно она регистрирует каждый тип под своим номером, а потом, когда нужно, на основе этого номера создаёт сам экземпляр класса.
То есть можно подменить, что бы при создании интерфейса создавать вместо него сам класс, но тогда вы не сможете использовать интерфейс "в прямом" его понимании,  т.е. использовать множественное наследование, т.е. один класс, один его интерфейс всё.  Хотя может быть да же и это можно обойти, если хорошо покопаться в метасистеме т.к. я внутренности смотрел не слишком пристально, но то, что возможно, это точно.
UPDT1: Пардон, всё уже придумано до нас:  pavelk.ru/ispolzovanie-interfejsov-klassov-v-qt-i-qml
qmlRegisterType("my.class",1,0,"Class") возможно вам поможет, но если вы хотите, чтобы свойства класса были  видны из qml, без наследования QObject вам вроде не обойтись. 
Еще, помимо  Q_DECLARE_METATYPE, надо делать  qRegisterMetaType