Подтвердить что ты не робот

Emit std::string с сигналом qt

Я пытаюсь испустить стандартную строку с сигналом qt. Сигнал будет доставлен в очередь. Я зарегистрировал тип с qRegisterMetaType, как он говорит в документации qt, но не повезло. Я регистрирую его так qRegisterMetaType<std::string>("std::string")

4b9b3361

Ответ 1

Вы также должны сделать:

Q_DECLARE_METATYPE (std::string)

Цитата Qt Doc

Добавление Q_DECLARE_METATYPE() делает тип, известный всем шаблонам основанные функции, включая QVariant. Обратите внимание, что , если вы собираетесь использовать тип в очереди сигналов и слотов или в QObject's системе свойств , вам также необходимо вызвать qRegisterMetaType(), поскольку имена разрешаются во время выполнения.