2013-03-21 3 views
3

나는 멀티 스레드 이미지 처리 응용 프로그램을 작성 중입니다. 나는 QT를 기반으로 GUI를 추가했는데, 프로그램을 시작하거나 입력 할 때마다 설정 파일에서 모두로드하지 않고 실험해야하는 매개 변수를 변경해야했습니다. GUI를 모니터링 할 수 있도록 각 스레드의 기본 정보를 표시합니다. 현재 이미지 처리 스레드간에 정보를 전달하는 스레드 안전 메서드가 있고 약 QT 스레드에서이 정보 중 일부를 폴링하여 UI에 몇 가지 피드백을 표시 할 수있는 방법을 원합니다.매초마다 한 번씩 QT에서 변수 폴링

제 요구 사항은 UI를 업데이트하기 위해 QT 특정 코드를 이미지 처리 스레드에 통합하고 싶지는 않습니다. 차라리 UI 스레드가 현재 스레드간에 정보를 전달하는 데 사용하는 메서드를 폴링합니다. 내 코드베이스의 이미지 처리 부분을 혼자 서서 QT에 의존 할 필요가 없다. QT UI를 업데이트하기 위해 전 세계적으로 사용 가능한 함수를 폴링하려면 어떻게해야합니까?

답변

8

QTimer은 (는) 친구입니다.

QTimer *timer = new QTimer(this); 
connect(timer, SIGNAL(timeout()), &someQObjectDerivedClassInstance, SLOT(doYourThing())); 
timer->start(1000); 

또는 Qt5 및 C++ 11에서는 람다에 직접 연결할 수 있습니다. 슬롯을 사용하면 다른 스레드에있는 객체에 연결하는 경우에 대비하여 대기중인 연결을 확보 할 수 있습니다.

관련 문제