В общем, самый простой способ, это использовать скрипт, т.к. запуск cmd с последующим вызовом rmdir через QProcess не прокатывает. 
Скрипта мне хватило примерно такого:
cd .. 
timeout /t 1 /nobreak 
rmdir "путь" /s /q"
cd .. нужен, чтобы выбраться из текущей директории, т.к. иначе она сама не удалится.
timeout вместо sleep, т.к. sleep у меня не работал и в итоге оказалось, что он устаревший.
Запускать скрипт надо через QDesktopServices::openUrl. 
Файл скрипта я создавал в temp и для поддержки русских путей ставил setCodec("CP-866") на QTextStream перед записью данных.