Qt::QueuedConnection 无法使用某些对象

Qt::QueuedConnection not working with some object

在我的应用程序中,信号槽之间有一个简单的连接。

    connect(&A, SIGNAL(signal(myObject)), &B, SLOT(slot(myObject));

不幸的是,这种联系将导致递归。然后我们改成了

    connect(&A, SIGNAL(signal(myObject)), &B, SLOT(slot(myObject)), Qt::QueuedConnection);

它不再起作用了。插槽从未被调用。

我尝试将 myObject 更改为 QString,它按预期工作。所以问题是 myObject Qt 不太喜欢的东西。

我检查了 Class Qt.ConnectionType, Signals & Slots and QObject doc,寻找 Qt::QueuedConnection,但我没有找到对我的情况的说明。

关于我的代码的一些注释:

有人对这个问题有一些解释吗?

其实Qt::QueuedConnection的文档好像没那么详细,看我上面贴的links。有没有更有用的link?

通过以下方式注册您的 myObject:

qRegisterMetaType<MyObject>("myObject");

其中 MyObject 是 class 名称。 doc

Between,Qt::QueuedConnection用于线程连接,您使用的是线程吗?