WPF нравится преобразовывать значения для сигналов и слотов QT?

#qt #signals-slots

#qt #сигналы-слоты

Вопрос:

Каков наилучший способ подключения, например, двойного сигнала к слоту QString в QT? Поскольку эти сигналы и слоты несовместимы, подключение направления невозможно. Существует ли какой-либо механизм, аналогичный преобразователям значений, используемым в привязке данных WPF для достижения этого в QT?

Я мог бы реализовать свой собственный двойной слот, который затем выдает мой собственный сигнал QString, но для простого преобразования значений требуется много работы. Существуют ли другие способы?

Ответ №1:

Кроме создания QObject адаптера, такой вещи, к сожалению, не существует. Самое странное ниспровержение передачи аргументов, которое позволяет Qt, — это подключать сигнал с аргументами к слоту без параметров (аргументы игнорируются) и смешивать и сопоставлять Type и const Typeamp; (я не уверен в этом на 100%).

Однако вы можете сойти с ума от адаптера, переопределив qt_metacall метод и используя разные стратегии преобразования и арности сигнал / слот. Это значительно большая (и забавная) задача по сравнению с простым созданием двойного слота.