我试着这样做:
connect(this, SIGNAL(signalClicked(int&)), classA, SLOT(doWork(int&)));
但我从标题中得到了信息。 所以我浏览了互联网并想出了这个也不起作用的解决方案:
qRegisterMetaType<int&>("Type");
connect(this, SIGNAL(signalClicked(Type)), classA, SLOT(doWork(Type)));
Error: no matching function for call to ‘qRegisterMetaType(const char[5])’
有什么解决办法吗?
最佳答案
如果 Qt 正在尝试对参数进行排队,这意味着连接是在线程之间进行的。这不适用于非常量引用。
您可以使用 reference_wrapper 来解决这个问题,但我强烈建议您重新考虑您的设计。在信号/槽连接中通过引用传递值不是一个好主意。
关于c++ - QObject::connect: 无法对类型为 'int&' 的参数进行排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083379/