2016-07-25 8 views
0

메인 스레드에 다중 GUI를 생성하는 Visual C++ 프로그램이 있습니다. 나는 다른 모든 GUI와 함께 QWidget을 보여주고 싶다. 현재 QApplication.exec()를 호출하면 창을 닫을 때까지 주 스레드가 차단됩니다. exec 함수가 주 스레드를 차단하지 못하게하거나 exec를 호출하지 않고 QWidget을 사용할 수 있습니까?QApplication :: exec가 메인 스레드를 차단하지 못하도록 함

+0

아니요, GUI가 작동하는 방식이 아닙니다. XY 문제처럼 들리므로 원하는 것을 설명해보십시오. – MrEricSir

+0

QApplication.exec()를 다른 스레드에서 시작할 수 있습니까? – Micka

답변

0

이 메서드는 메인 스레드를 블로킹하지 않습니다. 반대로 이벤트 루프를 실행하여 UI가 응답하도록합니다.

위젯이 표시되는 동안 Qt의 이벤트 루프가 원시 메시지 대기열과 완전히 상호 운용되므로 다른 모든 GUI가 반응합니다.

대화 상자 위젯을 닫을 때 문제가 발생하면 관련 코드를 예 : 대화 상자의 accepted() 신호.