如何使用 QTestLib 等待 QWidget 关闭? [Qt5]
How can I wait for a QWidget to close using QTestLib? [Qt5]
我正在为派生自 QWidget
.
的 class 编写基于 QTest
的测试用例
显示小部件后,我希望测试在小部件关闭后立即结束。
我第一次尝试使用QSignalSpy
,结果发现QWidget
在close()
上确实没有发出信号。
那么 "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();
我正在为派生自 QWidget
.
QTest
的测试用例
显示小部件后,我希望测试在小部件关闭后立即结束。
我第一次尝试使用QSignalSpy
,结果发现QWidget
在close()
上确实没有发出信号。
那么 "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();