Сделать поток зависимым от isAlive () из другого потока - PullRequest
0 голосов
/ 09 мая 2018

Я использовал следующий скрипт Python https://github.com/fbjorn/QtWaitingSpinner, чтобы создать вращающийся круг в моем PyQt5 GUI.

def initSpinner(self):
    self.spinner = spinner.WaitingSpinner(self)
    # Vorerst über show() hide() gelöst
    self.spinner.move(530, 30)
    self.spinner.start()
    self.spinner.hide()   

Моя идея заключается в том, чтобы во время работы потока отображался вращающийся круг в графическом интерфейсе. Теперь проблема в том, что когда я вызываю метод startThread, мой графический интерфейс останавливается до тех пор, пока не завершится старт потока с method.

def startThread(self, method):
    print(enumerate())
    if len(enumerate()) <= 20:
        t = Thread(target= method, daemon= True)
        t.start()
        sp = Thread(target= self.spinnerThread(t), daemon= True)
        sp.start()
    else:
        pass

def spinnerThread(self, thread):
    self.spinner.show()
    while thread.isAlive():
        pass
    self.spinner.hide()

Если я опередил sp, и я только запустил t Thread, мой графический интерфейс не заморожен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...