Ah! Merely calling accept() for the event is not enough: you have to manually call QDialog's showEvent.