0

I am writing a QTest based test case for a class that derives from QWidget.

After showing the widget, I want the test to end as soon as the widget is closed.

My first attempt was to use QSignalSpy, only to find out that QWidget really does not send out a signal on close().

So what is the "right way" to do this using QTest primitives?

Mr. Developerdude
  • 9,118
  • 10
  • 57
  • 95

1 Answers1

2

What if you specify Qt::WA_DeleteOnClose attribute for the widget and wait on its destroyed() signal?

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

// test thread...
QSignalSpy watchDog(pMyTestWidget, SIGNAL(destroyed(QObject*)));
watchDog.wait();
Alexander V
  • 8,351
  • 4
  • 38
  • 47