QObject::killTimer: Timers cannot be stopped from another thread QObject::startTimer: Timers cannot be started from another thread

Code Genie·2024년 11월 11일

QTimer Thread 문제

타이머 제어를 위한 시그널 정의

class ReadStockThread(QThread):
    start_timer_signal = pyqtSignal(int)  # 타이머 간격을 받는 시그널
    
    def __init__(self):
        super().__init__()
        self.timer = QTimer()  # Timer to trigger periodic tasks
        self.timer.moveToThread(self.thread())  # Move timer to this thread
        self.timer.timeout.connect(self.read_stock_data)  # Timer 연결
        
        # 시그널과 타이머 연결
        self.start_timer_signal.connect(self.timer.start)
        
    
    def method(self):
    	# 타이머 재시작 시그널 전송 (1ms 간격)
       self.start_timer_signal.emit(1)
       

서브스레드에서 타이머 인터벌을 재설정 할 때에
그냥 self.timer.start(100) 호출 하면 에러가 발생하고
Signal Slot으로 처리해야한다

profile
1인 개발

0개의 댓글