데이터를 받아서 화면에 뿌려주는 놈을 만들고 있음.
데이터를 받는 소스가 여러 곳이라서
한 소스에서 데이터를 받는 동안 ui가 얼어버리면 안됨
그래서 스레드 열어서 동시처리하려고 했는데
내가 gui라고 할만한 걸 해본건 html+JS밖에 없어서
걍 당연히 이벤트 열고 콜백 바인딩해서 처리하면 될거라 생각했음
근데 아무리 해도 tkinter 이벤트 객체에 데이터를 담아 넘길 방법이 없음
그래서 핸들러 함수에 바깥 스코프 변수 캡처하게 하고 그 상태로 바인딩해서 썼음
알다시피 스코프 넘나들어서 변수 가져다 쓰는 건 부입력-부작용이라고 전나게 유명한 안티패턴임..
일단 그렇게 코드 개판인 상태로 마무리 하고 나니까 내가봐도 코드가 너무 더러운거임
처음에는 tkinter이 똥이라고 욕했다 병신들이 지랄해놓은 건 쓰는 게 아닌데 이러면서
며칠 있다가 오늘 좀 찾아봤는데 그 설계는 '의도된 것'이라고 함
tkinter로 동시성 처리할땐 무조건 메시지 큐를 사용해야 된다고 함.
파이썬 왈, 이벤트 콜백 바인딩? 조까라 이거야..
지금 좆됬음
코드 다 꼬이고 이미 콜백 다 갖다 박았는데
이거 다 풀고 메시지큐로 싹 갈아야 할 판
결론: 잘 모르면 들어내기 쉽게 코딩하자
이젠 하다하다못해 라이브러리도 묻지마도입 ㅋㅋㅋㅋ 씨발 튜토리얼도 안읽냐?? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
걍 텍스트로 뿌려주기만 하면 되는거라 묻지마도입 했다 지금까지 gui쓸일이 워낙에 읎어서...
어쨌든 지금 꼬인거 들어내려고 부입력들 인자로 던질수 있게 partial로 묶고 지랄댄스중임 ㅅㅂ..
ㅍㅂ// var x; function f() { do_something(x); } 이런식으로 스코프 바깥에 있는 변수 끌어다 쓰는거 말하는거임