pyqt5로 만든 프로그램이 간혹 꺼지는 이유가 있다.
3번 하면 2번은 안꺼지고 1번은 꺼지고 그런 경우가 있다.
try - except 문으로 Exception을 물어봐도 답도 안해준다. ㅎㅎㅎ
여러가지 실험결과, 원인을 파악했다.
결국 그 원인은, 무언가 처리되고 있는 상태에서 또 명령을 수행했을 때 발생한다.
버튼1을 눌렀을 때 버튼2가 안나타나면 나타날때까지 버튼 1을 1초간격으로 눌르라는 while 반복문이 있었다.
그 반복문 때문에, 버튼2가 나타나도록 프로세스를 처리하는 과정에서 또 한번의 버튼1을 눌러버려서 거기서 에러가 뜬거였다.
버튼은 한번만 누르도록 하자 ㅎㅎ동기식으로 해야될 것을 비동기식으로 해버린 경우
DB처리가 된 이후에 버튼을 눌러야 할 것을,
DB처리를 thread명령으로 주고, time.sleep(5) 이후에 버튼 누르도록 명령했다.
거기서 에러가 뜬거였다.
DB처리하는데에는 3초정도밖에 걸리지 않았다.
그래서 thread 로 하고 time.sleep을 줘도 될거같은데, 암튼 결론은 거기서 계속 프로그램이 꺼졌다.
따라서, 불필요하게 thread로 쓴거있으면, 동기식으로 바꿔서 해보면 에러가 해결될 수 있다.
- self.resize
이거 정말 골치아프다.
손으로 버튼 누를때는 작동하더라도,
프로그래밍적으로 버튼누를때는 아예 여기서 뻗어버린다.
그래서 그냥 self.resize는 제거를 하였다.