Qt에서 event loop에 관여하는 방법

thisrule의 이미지

설명하기가 좀 난해합니다만...

우선 제가 만들고자 하는 프로그램은 콘솔형태로서, Qt4의 QCoreApplication의 subclass로 프로그램하고자 합니다.
또 제 프로그램은 외부기기를 control합니다.
제 프로그램의 동작방식은 또 다른 process와 socket 통신하여 움직이며, 외부기기의 status를 polling 방식으로 조사하여 그에 따른 행동도 해야합니다.

즉, 제 프로그램의 입력으로는 socket 통신, 외부기기의 status 입니다.

그런데 제가 가지고 있는 궁금한 사항은, socket이야 signal-slot과 연결하면 되지만,
외부기기의 status를 polling 방식으로 어떻게 가져올 수 있는가 입니다.
가장 쉬운 방식은 while문으로 돌리면 되겠지만, 그렇게 하면 Qt의 event loop를 실행할 수 없을 것이기 때문입니다.
Qt의 event loop에 외부기기 status를 polling하는걸 넣어서 해결할 수 있으면 좋을텐데
그건 어떻게 해야하는지 도저히 모르겠구요...

고수님들을 도움 바랍니다.

익명 사용자의 이미지

QThread를 이용해 보심이 어떨까요?
장비 status를 체크하는 것을 thread로 돌리고
특정 동작을 수행하면 QCustomEvent로 메시지 날려서
처리하고..
기본 구조는 이렇게 하면 될 것 같습니다.