2013-08-20 3 views
0

QMainWindow에서 시작된 QDialog 클래스가 있습니다. 생성자는 UI를 설정합니다. QMainWindow에 객체를 선언 한 다음 QDialog 클래스에서 루프하는 메소드를 호출합니다. 결과적으로 QDialog가 표시 될 때 (dialog-> show()가 생성자에 있음) 레이아웃없이 창이 나타납니다. 루프가 완료되면 레이아웃이 표시됩니다.QDialog 루프에서 페인팅하지 않습니다.

대신 exec()를 사용해 보았지만 대화 상자를 닫을 때까지 메서드가 실행되지 않습니다.

+0

어떤 종류의 루프입니까? 대화 상자는 모달 또는 넌 모달이 될 수 있으며 차단하지 않으면 내부적으로 자체 이벤트 루프를 실행해야합니다. 해당 메커니즘을 차단하면 제대로 작동하지 않을 수 있습니다. – dtech

+1

어쩌면'qApp-> processEvents()'를 다이얼로그를 생성하고 /하거나 루프를 실행하는 코드 어딘가에 실험 해보는 것이 좋습니다. – Anthony

+0

qApp-> processEvents()는 메소드를 호출하기 전에 수행했습니다. 감사 – nwnoga

답변

1

qApp->processEvents()이 도움이 될 것입니다. 대화 상자를 만드는 코드 주위에 배치하거나 루프를 실행하십시오.