Я знаю, что могу использовать QSignalMapper
для вызова слота с различными параметрами на основе соединения. То, что я хочу достичь, немного отличается.Qt Карта Сигналы на основе значения параметра
Мы используем плагины в нашем приложении, и разные плагины отвечают за различные типы объектов. Мы подключаем несколько слотов, каждый из которых реализован в другом плагине, к одному сигналу, испускаемому основным приложением. Одним из параметров сигнала является QString
, указывающий тип объекта, связанный с сигналом. В настоящее время мы проверяем этот параметр в слотах и продолжаем, если тип обрабатывается плагином. Это имеет недостаток, каждый плагин выполняет эту проверку, и я хочу избежать этого, если это возможно.
Я хочу подключить все слоты к одному и тому же сигналу, и когда сигнал испускается, вызывается только соответствующий слот в зависимости от значения аргумента QString
, вроде как QSignalMapper
, но по-другому.
Есть ли встроенный механизм для этого? Если нет, какие-либо идеи о том, как я могу это достичь?
Заранее спасибо.