Слоты, связанные с Qt Signal, запускаются только на линиях перерыва или при сборке "Release"
В моем приложении есть определенные объекты, которые связаны между собой сигналами и слотами. Похоже, что в последнее время эти слоты ненадежно вызываются, когда испускаются сигналы, к которым они привязаны. Эти объекты соединяются правильно и фактически работают нормально, когда я строю свой проект в режиме "Release", однако я просто заметил, что если я строю в режиме "Debug", слоты, кажется, не вызываются, если я не следую за ними с точкой останова.
Кроме того, если я следую за выполнением моего кода пошагово с помощью отладчика или устанавливаю точку останова в одном из этих слотов, то эти слоты, похоже, действительно вызваны.
Это метод, в котором я подключаю эти "определенные" объекты:
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);
}
Я также не получаю никаких ошибок вообще. У кого-нибудь есть какие-либо идеи? Единственная причина, по которой это является проблемой, заключается в том, что я бы предпочел не переключаться между двумя сборками все время.