我的信号和插槽都有一个std::string
类型参数。我的信号在 b 类中,在 A 类中。如果我将参数类型更改为 int,则信号有效但因 std::string 而失败。关于如何解决此问题的任何建议?
这是我使用的代码
connect(this,SIGNAL(SignalB(std::string)),ClassA::PtrClassA,SLOT(MethodA(std::string)));
如果您使用排队连接,则需要注册std::string
为元类型。Q_DECLARE_METATYPE(std::string)
在您的一个标题中使用。调用qRegisterMetaType<std::string>();
代码的初始化。
有关更多信息,请参阅QMetaType 文档。