2017-10-09 35 views
0

我正在编写一个QTest的基于QWidget派生类的测试用例。如何等待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();