GUI를 이용하다 보면 코드가 도는 동안 GUI가 응답 없음 상태가 됨을 확인할 수 있다.
이 현상을 없애기 위해 쓰레드를 나누어 코드가 돌아가는 동안 GUI도 함께 돌려 해결해보자
Thread
쓰레드(Thread)란 하나의 프로세스안에 일을 병렬로 처리하는 단위
자세한건 나중에 시스템 프로그래밍을 공부하며 다시 쓰겟다.
우선 쓰레드 Class를 정의해 준다.
쓰레드를 통해 돌리고 싶은 코드를 run함수에 작성한다.
1 2 3 4 5 | class ThreadClass(QtCore.QThread): def __init__(self, parent = None): super(ThreadClass,self).__init__(parent) def run(self): #~~~~~ | cs |
다음 GUI class에 __init__ 부분에서 쓰레드 Class를 이용해 쓰레드 변수를 정의한다.
1 2 3 | class Ui_MainWindow(object): def __init__ (self, parent = None) : self.threadclass = ThreadClass() | cs |
마지막으로 쓰레드를 사용하고 싶은 곳에서 쓰레드를 실행 해 준다.
1 | self.threadclass.start() | cs |
그러면 이제 GUI가 잘 돌아갈 것이다
'파이썬 > Pyqt5를 이용한 GUI' 카테고리의 다른 글
Pyqt5를 이용한 GUI - 버튼설정 (1) | 2019.02.02 |
---|---|
Pyqt5를 이용한 GUI (0) | 2019.02.02 |