Как использовать QThread или Threading, чтобы мои gui не зависали - PullRequest
0 голосов
/ 04 мая 2020

Привет всем, я пытаюсь сделать проект классификации жанров PyQt5 gui для музыки c. Но когда функция классификации запускается, все gui замирает, пока не будет выполнена классификация. Мой вопрос заключается в том, как реализовать многопоточность или QThread, чтобы он не зависал. Вот код:

#imports here

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
    #gui here     

    def retranslateUi(self, MainWindow):
        self.button1.clicked.connect(self.openFile)
        self.button2.clicked.connect(self.main) #calling the function with the long process
        self.text.setReadOnly(True)

    def openFile(self):    
    #opening files here, path is passed to main function

    def main(self):
    #long process here that freezes the gui

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
...