我的信号和插槽都有一个std::string
类型参数。我的信号在类A中的B和插槽中。如果我将参数类型更改为int,则信号可以工作,但是使用std :: string失败。有关如何解决此问题的建议吗?
以下是我使用的代码
connect(this,SIGNAL(SignalB(std::string)),ClassA::PtrClassA,SLOT(MethodA(std::string)));
答案 0 :(得分:3)
如果您使用排队连接,则需要将std::string
注册为元类型。在其中一个标题中使用Q_DECLARE_METATYPE(std::string)
。在代码初始化时调用qRegisterMetaType<std::string>();
。
有关详细信息,请参阅QMetaType docs。