delete this can cause crashes because you delete the object when it is still trying to process events. deleteLater() will wait for all the events to finish processing -- then it's safe to delete the object.

Always use deleteLater() to delete QObjects, unless you are trying to do low-level memory management. (Most people don't need to do this)