본문 바로가기

스레드8

QThread와 main 스레드간의 통신 연결-complete- 안녕하세요? 어떻게 자료를 나누다 보니 실수로 정말로 짧은 블로그 포스팅이 나올 정도로 자료를 이상하게 자르고 말았습니다. 그래도 일단 작업이 완료가 되었다는 것을 선언할 필요가 있어서, 부득이하게 이번 포스팅을 올리게 되었습니다. 아무튼 지난번에 sleep명령어를 없애도 제대로 작업이 되는지를 의문시 하고 끝냈는데, 이번 포스팅에서 확실하게 보여드리겠습니다. 일단 위 스크린샷에서 보이는 것처럼 모든 sleep()함수를 모두 다 주석처리하는 것으로 무력화 시키고자 했습니다. 이렇게 하는 것으로 일단 작업이 하나 완료가 되었습니다. 이렇게 해도 결과의 생성에는 아무런 문제가 없는 것을 확인할 수 있었습니다. 그래서 모든 것이 잘 되었느냐 하면, 그건 아닌 것이, 이번 일련의 포스팅으로 일단 QThread와.. 2020. 2. 7.
QThread와 main 스레드간의 통신 연결-6- 안녕하세요? 이번 포스팅에서는 드디어 프로그레스 바의 세세한 부분까지 지정하기 위해서 이제 작업에 들어가 보고자 합니다. 일단 이 작업을 위해서는 역시나 만만치 않은 작업이 남아 있지만, 일단 갈 때까지 가도록 해 보겠습니다. 일단 이 작업을 추가로 이어가기 위해서는 pyqtSignal이 더 필요했습니다. 이 작업을 하기 위한 밑 발판을 깔아 두도록 합니다. 그리고 나서 이 작업을 하기 위한 sleep()함수와 마찬가지로 있는 신호를 송출하기 위한 메서드를 만들어 보도록 ㅎ바니다. 그리고 나서 다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것처럼 일단 프로그레스 바에 작업을 하기 위해서 메서드를 추가로 만들어 줍니다. 그리고 나서 다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것처럼 일단 뭔래라면.. 2020. 2. 7.
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.