Как я могу ждать закрытия QWidget с помощью QTestLib? [Qt5]
Я пишу QTest
тестовый пример для класса, который является производным от QWidget
,
После показа виджета я хочу, чтобы тест завершался, как только виджет был закрыт.
Моя первая попытка была использовать QSignalSpy
только чтобы узнать что QWidget
действительно не посылает сигнал о close()
,
Так каков "правильный способ" сделать это с помощью QTest
примитивы?
1 ответ
Решение
Что, если вы укажете атрибут Qt::WA_DeleteOnClose для виджета и будете ждать его сигнала destroy ()?
pMyTestWidget->setAttribute(Qt::WA_DeleteOnClose);
pMyTestWidget->show();
// test thread...
QSignalSpy watchDog(pMyTestWidget, SIGNAL(destroyed(QObject*)));
watchDog.wait();