본문 바로가기

Qthread26

QThread와 main 스레드간의 통신 연결-5- 안녕하세요? 지난번 포스팅에서 제 의도와는 상당히 벗어난 결과가 나와서 통신은 어떻게 되기는 되는데, 정작 QThread에서 메인 스레드의 GUI 구성요소를 제대로 제어하지 못하는 현상이 발생했습니다. 그래서 이번에는 이런 상황을 타개하고자 어떻게 여러가지 시행착오를 거쳤고, 그 내용을 올리고자 합니다. 먼저 이 작업을 위해서 QThread에서 Stop이라는 메서드를 따로 만들도록 합니다. 왜 이렇게 하느냐 하면, 그냥은 정지하라는 메서드가 없기 때문에, 일단 위 스크린샷처럼 self.terminate()란느 명령으로 강제로 종료를 시킬 수 밖에 없습니다. 그리고 나서 다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것과 같이, 일단 wait()이라는 명령어를 써서 QThread가 종료가 될 때까지 일.. 2020. 2. 6.
QThread와 main 스레드간의 통신 연결-4- 안녕하세요? 계속해서 이어지는 QThread와 메인 스레드의 통신이라고 해야 할까, 단순한 통신이 아니라 아예 QThread에서 메인 스레드에 있는 GUI구성요소 중에 프로그레스 바를 제어하는 방법을 한번 연습하는 것에 가까워지고 있는데, 아무튼 이 시행착오를 벌인 내용에 대해서 포스팅을 해 보고자 합니다. 먼저 위 스크린샷에서 볼 수 있는 것처럼 QThread역할을 하는 클래스에서 신호를 송출할 때, 이번에는 서브 프로세스 - 한개의 종목에 대해서 읽어서 처리하는 과정에 대해서 한번 신호를 보내보고자 합니다. 먼저 위 스크린샷의 내용처럼 for문에서 쓸데없이 너무 반복이 되는 현상이 관찰이 되어서, 위 스크린샷에서 볼 수 있는 것처럼 그냥 2부분에서 3부분으로 메서드를 또 나누어 보고자 합니다. 아니,.. 2020. 2. 6.
QThread와 main 스레드간의 통신 연결-3- 안녕하세요? 애초에 목적은 누누히 말하지만 GUI프리징을 막기 위한 작업이었지만, 그래도 이 작업을 하면서 의도치 않게 QThread와 메인 스레드간의 통신에 필요한 코딩하는 법을 알았습니다. 그래서 그 일련의 과정을 실험기록을 남기는 것을 겸해서 어떻게 만들고 있는데, 이래저래 이렇게 기록만 남기는 것이 아니라 슬슬 정리해야 할 핑요성을 느끼기도 합니다. 먼저 위 스크린샷의 강조가 된 부분처럼 QThread역할을 하는 클래스에 내용을 추가해 주도록 합니다. 이 내용에서 먼저 int가 들어간 신호를 먼서 선언을 하고, 그 다음에는 어떤 메서드가 실행이 되면, 이 메서드에서 변수를 담아서 - 단순히 신호를 보내서 off된 것을 on시키는 것만이 아니라 숫자를 첨부해서 보내서 얼마만큼 움직여라 하는 식으로 .. 2020. 2. 6.
QThread와 main 스레드간의 통신 연결-2- 안녕하세요? 지난번에는 정말 불만족 스러운 시작이 되었습니다만, 그래도 일단 시작은 시작이고, 이 작업을 하기 위해서는 계속해서 작업을 해야 합니다. 아무튼 이 예약포스팅을 작성하고 있는 시점인 2월 3일에는 허리 통증도 많이 나아져서 일상생활에는 무리가 없는데, 조금만 더 하면 완치가 될 것으로 보입니다. 아무튼 서론이 길어졌는데, 일단 작업을 하기 위해서 한번 움직여 보고자 합니다. 지난번의 작업이 그다지 만족스럽지가 않아서, 전부 지우거나 되 돌리기는 힘들기 때문에 하는 수 없이 새로운 py파일을 만들어 보아야 했습니다. 그리고 나서 다음으로 해야 할일은, 일단 QThread와 메인 스레드간의 통신을 위해서 당연 QThread역할을 할 스레드도 필요하지만, 더불어서 시그널을 담당하는 pyqtSign.. 2020. 2. 5.