Как я могу ждать закрытия 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();
Другие вопросы по тегам