본문 바로가기

전체 글3555

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.
QThread와 main 스레드간의 통신 연결-3- 안녕하세요? 애초에 목적은 누누히 말하지만 GUI프리징을 막기 위한 작업이었지만, 그래도 이 작업을 하면서 의도치 않게 QThread와 메인 스레드간의 통신에 필요한 코딩하는 법을 알았습니다. 그래서 그 일련의 과정을 실험기록을 남기는 것을 겸해서 어떻게 만들고 있는데, 이래저래 이렇게 기록만 남기는 것이 아니라 슬슬 정리해야 할 핑요성을 느끼기도 합니다. 먼저 위 스크린샷의 강조가 된 부분처럼 QThread역할을 하는 클래스에 내용을 추가해 주도록 합니다. 이 내용에서 먼저 int가 들어간 신호를 먼서 선언을 하고, 그 다음에는 어떤 메서드가 실행이 되면, 이 메서드에서 변수를 담아서 - 단순히 신호를 보내서 off된 것을 on시키는 것만이 아니라 숫자를 첨부해서 보내서 얼마만큼 움직여라 하는 식으로 .. 2020. 2. 6.