使用std :: string会失败信号和插槽

时间:2013-06-15 08:14:25

标签: c++ qt

我的信号和插槽都有一个std::string类型参数。我的信号在类A中的B和插槽中。如果我将参数类型更改为int,则信号可以工作,但是使用std :: string失败。有关如何解决此问题的建议吗?

以下是我使用的代码

connect(this,SIGNAL(SignalB(std::string)),ClassA::PtrClassA,SLOT(MethodA(std::string)));

1 个答案:

答案 0 :(得分:3)

如果您使用排队连接,则需要将std::string注册为元类型。在其中一个标题中使用Q_DECLARE_METATYPE(std::string)。在代码初始化时调用qRegisterMetaType<std::string>();

有关详细信息,请参阅QMetaType docs