Из документации Qt QtMetaType :
Класс QMetaType управляет именованными типами в мета-объектной системе.Класс используется в качестве помощника для маршалловых типов в QVariant и в подключенных к очереди сигналах и слотах.Он связывает имя типа с типом, чтобы его можно было динамически создавать и уничтожать во время выполнения.Объявите новые типы с помощью Q_DECLARE_METATYPE (), чтобы сделать их доступными для QVariant и других функций, основанных на шаблонах.Вызовите qRegisterMetaType (), чтобы сделать тип доступным для функций, не основанных на шаблонах, таких как подключение сигналов в очереди и слоты.
Регистрация вашего пользовательского типа с помощью qRegisterMetaType () позволяет использовать его в сигналах и слотах,а также другие «не основанные на шаблонах функции»