스레드
프로그램이 메모리에 올라가서 실행중인 것을 프로세스라고 부르는데, 이 프로세스의 실행 단위를 스레드라고 한다. 프로세스는 최소 하나 이상의 스레드를 갖으며 경우에 따라 여러 스레드를 가질 수 있다. PyQT에서는 이를 QThread 클래스를 상속받은Worker 클래스를 통해 처리하는 편이다. 아래는 QThread의 예제이다.
🖥️ main.py
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Worker(QThread):
def run(self):
while True:
print("안녕하세요")
self.sleep(1)
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.worker = Worker()
self.worker.start()
app = QApplication(sys.argv)
mywindow = MyWindow()
mywindow.show()
app.exec_()
코드를 보자면, 생성자에서 self.worker로 Worker() 인스턴스를 만든뒤 start()함수를 통해 해당 스레드를 실행시킨다. 이때 스레드에서 하는 행위는 QThread을 상속받은 Worker클래스 안의 run() 함수에 따라 결정된다.
추가적으로 스레드끼리의 값 전달, 컨트롤 하는 방법도 있으니 아래 글을 참고 하자.
참조 : https://wikidocs.net/71014
'FrameWork > PyQT' 카테고리의 다른 글
파이썬 라이브러리 PyQT을 통해 에딧와 리스트 뷰, 위젯 컴포넌트를 다루기 (0) | 2023.07.05 |
---|---|
파이썬 라이브러리 PyQT을 통해 메시지 박스 생성하고 이벤트 연결하기 (2) | 2023.07.05 |
파이썬 라이브러리 PyQT을 통해 여러 종류의 버튼을 생성하고 이벤트 연결하기 (0) | 2023.07.05 |
파이썬으로 그래픽 인터페이스 제작하기! Pyside6 설치 및 Qt designer로 작업물 .py 파일로 변환하기 (0) | 2023.07.04 |