Russian Qt Forum

Qt => Общие вопросы => Тема начата: SektorCT от Август 29, 2019, 16:17



Название: Работа с сигналами, слотами и их индексация
Отправлено: SektorCT от Август 29, 2019, 16:17
Всем привет.
Сталкнулся с такой очень не простйо темой для меня, работа с таблицей индексов то что гинерирует Qt в МОК файлах.
Проблема такая, есть класс worker который имеет в себе разные слоты, сигналы, проперти. Таких обьектов типа worker может быть много.
Есть обертка над этим классом, она автоматически должна проверить все слоты, сигналы. Определить их аргументы, правильно их развернуть и свернуть.
Само собою данные через wrapper ползут в qml.
Это все работает, (дальше жирное) НО если я в тестовый проект подключаю наследуемость, у парента создам сигналы и слоты, то как бы в врапера надо уже определять с какого обьекта летит индекс.
И вот это я уже не понимаю как сделать.
Отзовитесь кто с такой индексацией работал или работает.
Уже дня 3 с этим копаюсь и чем дальше тем хуже...
Спасибо заранее отозвавшимся.
Я даже готов оплатить эту помощь с этим решением, просто я не могу осилить такое в короткие сроки.


Название: Re: Работа с сигналами, слотами и их индексация
Отправлено: ssoft от Сентябрь 02, 2019, 07:49
Для работы с метаинформацией у каждого типа, производного от QObject имеется тип QMetaObject, через который можно получить все QMetaMethod, QMetaEnum, QMetaProperty и их индексы.
Напрямую использовать индексы нежелательно. Используйте вместо индексов QMetaMethod, QMetaEnum, QMetaProperty. В них сразу определено (через указатель на соответствующий экземпляр QMetaObject)  с какого типа объекта "летит индекс".