Я работаю над многопоточным приложением Qt и хотел бы соединить сигнал в потоке со слотом в другом потоке. Моя проблема в том, что у меня есть только строка, используемая для установки QObject:objectName
в потоке сигнализации, который определен в файле констант всего проекта.
Моя общая цель - избежать передачи указателей на объекты, которые находятся в нескольких слоях глубоко внутри других объектов. Я делал это в прошлом, и пока он работает, он добавляет много ненужной сложности в код. И это очень не элегантное решение проблемы.
Что я хотел бы сделать, так это выполнить глобальный поиск по всем объектам QO в моем приложении, чтобы найти тот, который соответствует имени. При чтении документации по Qt идет серьезное обсуждение того, как искать дочерние объекты текущего объекта, или вы можете искать с использованием родительских классов. Но с объектами в разных потоках это не похоже на работу. В частности, поскольку объект, выполняющий соединение, не имеет прямого доступа к QThread, которому принадлежит объект, выполняющий передачу сигналов.
Есть предложения?