Qt ссылки на QObject деструкторе говорят:Неоднозначный деструктор для QObject?
Всех сигналов и от объекта, автоматически отключается, и любые ожидающие Отправленные событий для объекта удаляется из очереди событий. Однако, более безопасно использовать deleteLater() вместо того, чтобы напрямую удалять подкласс QObject.
...
Предупреждение: Удаление QObject в то время как в ожидании событий, ожидающих быть доставлены может привести к аварии. Вы не должны удалять QObject напрямую, если он существует в другом потоке, чем тот, который выполняется в настоящий момент. Вместо этого используйте deleteLater(), из-за чего цикл цикла будет удалять объект после отправки всех ожидающих событий.
Обратите внимание на жирные строки в приведенном выше разделе.
Итак, вопрос в том, удалены ли ожидающие отправленные события из очереди событий или нет?
Спасибо, @TheDarkKnight. Давайте немного перефразируем вопрос: если QObject существует только в одном потоке, тогда безопасно вызывать delete столько же, сколько безопасно для вызова deleteLater? – agnor
Это зависит от того, в какой точке кода вы удаляете объект. Если код находится в функции слота, тогда [вы должны позвонить deleteLater] (http://stackoverflow.com/questions/22376298/when-to-use-deletelater/22378104#22378104) – TheDarkKnight