Хотя объекты QObject удаляются автоматически, если у них есть родительский объект, они удаляются только при удалении родительского объекта. В вашем случае вы создаете новые QTimers и оставляете их как мертвый груз, висящий на их родительских объектах, это, по сути, утечка памяти, а хитрые инструменты проверки утечки памяти не могут даже найти, поскольку объект все еще ссылается на их родитель. Вы должны удалить QObjects, когда вы больше не используете их, хотя, если вы находитесь в некотором роде слота или обратного вызова из чего-то, что они использовали, используйте QObject :: deleteLater ().
Хотя в этом случае, как кто-то уже сказал, не используйте объект QTimer, а используйте таймер одиночного выстрела или, альтернативно, QBasicTimer.