Берем QAbstractItemModel который потомок QObject`a и опредетяем его потомка:
template<typename T> myclass : public QAbstractItemModel {....};
Естесно MOC шаблоны не понимает и этот myclass не может содержать Q_OBJECT и MOCом не обрабатывается, но в нем (myclass) переопределяются тока чисто виртуальные функции от QAbstractItemModel не сигналы/слоты я в myclass не трогаю, интернационализацию тоже, тока если объектную иерархию пользую (ту что указатель на parent в конструкторе).
Короче такое работать будет (компилироваться оно компилится) или я велосипед Qt наглым образом обманываю и он мне этого не простит?