프로그램이 간혹 꺼지는 이유

in python •  4 years ago 

pyqt5로 만든 프로그램이 간혹 꺼지는 이유가 있다.

3번 하면 2번은 안꺼지고 1번은 꺼지고 그런 경우가 있다.

try - except 문으로 Exception을 물어봐도 답도 안해준다. ㅎㅎㅎ

여러가지 실험결과, 원인을 파악했다.

결국 그 원인은, 무언가 처리되고 있는 상태에서 또 명령을 수행했을 때 발생한다.

  1. 버튼1을 눌렀을 때 버튼2가 안나타나면 나타날때까지 버튼 1을 1초간격으로 눌르라는 while 반복문이 있었다.
    그 반복문 때문에, 버튼2가 나타나도록 프로세스를 처리하는 과정에서 또 한번의 버튼1을 눌러버려서 거기서 에러가 뜬거였다.
    버튼은 한번만 누르도록 하자 ㅎㅎ

  2. 동기식으로 해야될 것을 비동기식으로 해버린 경우
    DB처리가 된 이후에 버튼을 눌러야 할 것을,
    DB처리를 thread명령으로 주고, time.sleep(5) 이후에 버튼 누르도록 명령했다.
    거기서 에러가 뜬거였다.

DB처리하는데에는 3초정도밖에 걸리지 않았다.
그래서 thread 로 하고 time.sleep을 줘도 될거같은데, 암튼 결론은 거기서 계속 프로그램이 꺼졌다.
따라서, 불필요하게 thread로 쓴거있으면, 동기식으로 바꿔서 해보면 에러가 해결될 수 있다.

  1. self.resize
    이거 정말 골치아프다.

손으로 버튼 누를때는 작동하더라도,
프로그래밍적으로 버튼누를때는 아예 여기서 뻗어버린다.
그래서 그냥 self.resize는 제거를 하였다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!