У меня есть два экземпляра подклассов QObject и два экземпляра QMetaMethod сигнала в одном из объектов и слота в другом объекте. Я хочу соединить этот сигнал и слот друг с другом.
Я просмотрел qobject.h файл и нахожу, что СИГНАЛ () и СЛОТ () макрос, просто добавляют "1" или "2" символ к началу сигнатуры метода, таким образом, похоже, что должно быть возможно добавить тот же символ к началу строки, возвращенной QMetaMethod:: подпись (), но этот подход зависит от некоторых недокументированных внутренностей инструментария и может быть повреждена в любое время новой версией QT.
Кто-либо знает надежный путь к сигналам соединения и слотам через их представление отражения QMetaMethod?
Отредактированный: я создал предложение в спокойной системе отслеживания ошибок: https://bugreports.qt.io/browse/QTBUG-10637, Если кто-либо также заинтересовал этой функцией, можно голосовать за этот билет там.
Похоже, что нет способа заставить его работать без опоры на внутреннюю реализацию. На вашем месте я бы отправил запрос на создание функции в Qt bug tracker, написал бы код, имитирующий текущее поведение макросов SIGNAL/SLOT, и добавил бы модульный тест, который откажет при изменении поведения SIGNAL/SLOT.
Возможно, существует более простое решение проблемы, которую вы пытаетесь решить: опишите, что именно вы пытаетесь сделать, без деталей реализации.
Если метод подписи является публичным в QMetaMethod, то результат не должен быть сломан троллями и его безопасно использовать (в документации ничего не говорится об "опасностях" при использовании QMetaMethod::метод подписи). Я думаю, что вы можете безопасно использовать его. Просто чтобы убедиться, какую версию Qt вы используете сейчас ?