pyqt와 selenium같이 이용하기

gaon·2021년 2월 8일
0

파이썬

목록 보기
1/1

pyqt 내부에서 selenium을 실행하면 gui는 먹통이 된다. 움직이지를 않고 프로그램이 중단된것처럼 보인다. 이를 threading을 이용하여 해결할 수 있다.

from PyQt5.QtCore import QCoreApplication, QThread, QObject, pyqtSignal

class Worker():
    progress = pyqtSignal(int)
    finished = pyqtSignal()
    def run(self):
        self.progress.emit(10) #def progress_emited에 10을 넘겨줌
        selenium_run() #selenium 실행
        self.finished.emit() #스레드 종료

class WindowClass(QMainWindow, Ui_MainWindow):
    ''''''''''''''''''
    def work(self):
        self.thread = QThread()
        self.worker = Worker()
        self.worker.moveToThread(self.thread)
        self.thread.started.connect(self.worker.run)
        self.worker.finished.connect(self.thread.quit)
        self.worker.finished.connect(self.worker.deleteLater)
        self.thread.finished.connect(self.thread.deleteLater)
        self.worker.progress.connect(self.progress_emited)
    def progress_emited(self, no):
        self.progressBar.setValue(no)

    

0개의 댓글