2

我的信号和插槽都有一个std::string类型参数。我的信号在 b 类中,在 A 类中。如果我将参数类型更改为 int,则信号有效但因 std::string 而失败。关于如何解决此问题的任何建议?

这是我使用的代码

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

1 回答 1

5

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

有关更多信息,请参阅QMetaType 文档

于 2013-06-15T08:21:06.660 回答