испустить std :: string с сигналом qt - PullRequest
12 голосов
/ 08 октября 2011

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

1 Ответ

17 голосов
/ 08 октября 2011

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

Q_DECLARE_METATYPE (std::string)

Цитирование Qt Doc

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...