0

我的应用程序中有一些特定的对象与信号和插槽绑定在一起。直到最近,当它们绑定的信号被发射时,这些插槽似乎并没有被可靠地调用。当我在“发布”模式下构建我的项目时,这些对象正确连接并且实际上工作正常,但是我只是注意到如果我在“调试”模式下构建,除非我在它们后面加上断点,否则插槽似乎不会被调用。

此外,如果我使用调试器逐步执行我的代码或在这些插槽之一中设置断点,那么似乎确实调用了这些插槽。

这是我连接这些“某些”对象的方法:

void Window::dynamicConnect(Entities *senderName, const QString &signalName, Entities *receiverName, const QString &slotName)
{    
    QMetaMethod signal = senderName->metaObject()->method(senderName->metaObject()->indexOfSignal(QMetaObject::normalizedSignature(qPrintable(signalName))));
    QMetaMethod slot = receiverName->metaObject()->method(receiverName->metaObject()->indexOfSlot(QMetaObject::normalizedSignature(qPrintable(slotName))));
    QObject::connect(senderName,signal,receiverName,slot);
}

我也没有收到任何错误。有没有人有任何想法?这是一个问题的唯一原因是因为我不想一直在 2 个构建之间切换。

4

0 回答 0