O girador de carregamento PyQt5 para quando solicitado

Estou usando o QtWaitingSpinner encontrado aqui:https://github.com/snowwlex/QtWaitingSpinner. Você pode criar e iniciar um controle giratório da seguinte maneira:spinner = QtWaitingSpinner(self); spinner.start(). Infelizmente, quando tento fazer uma solicitação POST da minha GUI, o botão giratório pára até que uma resposta seja retornada. Consequentemente, não vejo o botão giratório, ou, se eu iniciar prematuramente, ele pára de girar enquanto aguarda a resposta. Acho que vou ter que usar algum tipo de método assíncrono como QThread ou asyncio, mas não está claro qual é a melhor maneira de contornar isso. Se alguém puder me mostrar a melhor maneira de lidar com isso, ficaria grato. Aqui está uma versão simplificada do que estou fazendo:

class Obj(QDialog):
    # some button calls this function when pressed
    def submit(self):
        #start spinner
        spinner = QtWaitingSpinner(self)
        spinner.start()

        # post some data to some url, spinner should spin
        r = requests.post('some_url.com', json=some_data)

        # stop spinner
        spinner.stop()

questionAnswers(1)

yourAnswerToTheQuestion