본문 바로가기
무모한 도전-주식 인공지능 만들기

QThread와 main 스레드간의 통신 연결-6-

by 인터넷떠돌이 2020. 2. 7.
반응형

안녕하세요?

 

이번 포스팅에서는 드디어 프로그레스 바의 세세한 부분까지 지정하기 위해서 이제 작업에 들어가 보고자 합니다. 일단 이 작업을 위해서는 역시나 만만치 않은 작업이 남아 있지만, 일단 갈 때까지 가도록 해 보겠습니다.

 

일단 이 작업을 추가로 이어가기 위해서는 pyqtSignal이 더 필요했습니다. 이 작업을 하기 위한 밑 발판을 깔아 두도록 합니다.

 

그리고 나서 이 작업을 하기 위한 sleep()함수와 마찬가지로 있는 신호를 송출하기 위한 메서드를 만들어 보도록 ㅎ바니다.

 

그리고 나서 다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것처럼 일단 프로그레스 바에 작업을 하기 위해서 메서드를 추가로 만들어 줍니다.

 

 

그리고 나서 다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것처럼 일단 뭔래라면 프로그레스바의 현재값을 지정해 주는 코드가 있어야 하는데, 그 부분은 주석처리를 하고, 대신 신호를 송출하기 위한 코드를 작성해 보도록 했습니다.

 

그리고 나서 QThread에선느 위 스크린샷에서 나와 있는 것처럼 일단 신호를 QThread로 송출하기 위한 메서드를 메인 클래스에서 작성해 주도록 합니다.

 

그리고 나서 당므으로 두번째로 메인이 되는 프로그레스 바의 현재값을 설정하기 위한 신호를 송출하기 위한 메서드도 역시나 작성해 주도록 합니다.

 

그리고 나서 이제 마지막으로 토탈 진행과정의 진행이 되는 토탈 프로세스를 표시해 주는 바를 아예 바꾸어 주도록 합니다. 이렇게 해서 신호를 송출하는 메서드로 바꾸어 주도록 하고.....

 

그리고 나서 QThread에는 위 스크린샷에서 나와 있는 것처럼 어떻게 만들어 주도록 합니다. 이렇게 해서 나와 있는 내용을 보자면, QThread에서 나오는 신호를 받아서 작업이 이어질 수 있도록 만들어 줍니다.

 

그리고 나서 잊어버릴 뻔 했는데, 이렇게 해서 위 스크린샷에서 나와 있는 것처럼 먼저 작업을 해 주도록 합니다. 즉, 신호를 발생 시키면, QThread의 어떤 메서드가 작동을 하라는 것을 미리미리 연결시켜 주도록 합니다.

 

이렇게 해서 한번 일단락을 되었습니다. 다만 문제는  너무 많은 sleep()함수 때문에 느려진 감이 있는 정도가 아니라 확실하게 느려져 버렸는데, 이걸 어떻게 해서든, 복구하기 위한 작업에 착수해야 할 필요성이 있다는 것 입니다. 일단 이 작업을 위해서 이번 포스팅은 여기서 마치며, 다음 포스팅에서 이어 가도록 하겠습니다.

반응형