QObject::connect:无法对类型 'int&' 的参数进行排队

QObject::connect: Cannot queue arguments of type 'int&'

本文关键字:参数 排队 int 类型 QObject connect      更新时间:2023-10-16

我试过这样做:

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]) '没有匹配的函数

解决方案吗?

如果Qt正在尝试将参数排队,这意味着连接在线程之间。这对非const引用不起作用。

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