用qt信号发出std :: string

use*_*508 12 c++ qt qt4

我试图用qt信号发出标准字符串.信号将按排队方式发送.我用qRegisterMetaType注册了这个类型,就像在qt文档中说的那样,但没有运气.我正在这样注册 qRegisterMetaType<std::string>("std::string")

Rus*_*hPL 18

你还应该这样做:

Q_DECLARE_METATYPE (std::string)
Run Code Online (Sandbox Code Playgroud)

引用Qt Doc

添加Q_DECLARE_METATYPE()使所有基于模板的函数都知道类型,包括QVariant.请注意,如果您打算在排队信号和插槽连接中使用类型或在QObject的属性系统中使用类型,则还必须调用qRegisterMetaType(),因为名称是在运行时解析的.