13

我试图这样做:

connect(this, SIGNAL(signalClicked(int&)),  classA, SLOT(doWork(int&)));

但我得到了标题中的信息。所以我探索了互联网,我想出了这个也不起作用的解决方案:

 qRegisterMetaType<int&>("Type");
 connect(this, SIGNAL(signalClicked(Type)),  classA, SLOT(doWork(Type)));

错误:没有匹配函数调用 'qRegisterMetaType(const char[5])'</p>

有什么解决办法吗?

4

1 回答 1

25

如果 Qt 试图将参数排队,这意味着连接在线程之间。这不适用于非常量引用。

您可以使用 reference_wrapper 来解决此问题,但我强烈建议您重新考虑您的设计。在信号/插槽连接中通过引用传递值不是一个好主意。

于 2013-06-13T09:34:57.473 回答