There is one big difference between your usage of QNetworkAccessManager and one pointed in the link. Notice that your version is synchronous: you block the event loop in 'request' slot by waiting for reply, thus QNetworkAccessManager cannot work unless you push the events by hand. From the other side the pointed example is asynchronous: it creates request, connects 'finished' signal and lets event loop to work. This way event loop is not blocked and network manager works well. I understand that in your situation 'request' slot needs to be synchronous, thus processEvents is a must here.
EDIT
If you want to make the request
asynchronous, then you need to be sure that QNetworkAccessManager
object is persistent outside the request
method. Initialize it in __init__(self)
and use it to POST in the request. Probably
QNetworkReply` needs to be persistent too, you need to check it.