2017-10-09 10 views
0

QWidget에서 파생 된 클래스에 대해 QTest 기반 테스트 케이스를 작성했습니다.QWidget이 QTestLib을 사용하여 닫힐 때까지 기다리는 방법은 무엇입니까? [Qt5]

위젯을 표시 한 후을 닫으면 바로 시험을 으로하고 싶습니다.

첫 번째 시도는 QSignalSpy을 사용하여 QWidget이 실제로 close()에 신호를 보내지 않는 것을 확인했습니다.

그래서 QTest 프리미티브를 사용하여 이것을 수행하는 "올바른 방법"은 무엇입니까?

답변

1

위젯의 속성이 specifyQt::WA_DeleteOnClose 인 경우 신호가 destroyed() 인 경우 어떻게됩니까?

pMyTestWidget->setAttribute(Qt::WA_DeleteOnClose); 
pMyTestWidget->show(); 

// test thread... 
QSignalSpy watchDog(pMyTestWidget, SIGNAL(destroyed(QObject*))); 
watchDog.wait();