如何使用 QTestLib 等待 QWidget 关闭? [Qt5]

How can I wait for a QWidget to close using QTestLib? [Qt5]

我正在为派生自 QWidget.

的 class 编写基于 QTest 的测试用例

显示小部件后,我希望测试在小部件关闭后立即结束

我第一次尝试使用QSignalSpy,结果发现QWidgetclose()上确实没有发出信号。

那么 "right way" 使用 QTest 原语来做这个是什么?

如果你specify Qt::WA_DeleteOnClose attribute for the widget and wait on its destroyed()发出信号怎么办?

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

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