2017-10-17 6 views
0

Qt 4.7.1QTest ne montre pas les boîtes de dialogue

J'ai une configuration QtTest qui a été jusqu'à récemment un bon rendement. J'ai rencontré, et traité, le besoin d'interagir avec les boîtes de dialogue modales en utilisant des minuteries singleshot.

Cependant, je vois maintenant le comportement opposé; les appels tels que QFileDialog :: getSaveFileName retournent directement sans afficher le dialogue. C'est parce que j'ai effectué une fusion, donc je suppose qu'il y a un changement de code ou de construction, mais ce n'est pas l'appel de la fonction elle-même.

En ce qui concerne le code exemple va, je ne peux pas poster mon cadre tout ou AUT mais considérer ce qui suit dans une fonction de test:

QMessageBox::StandardButton button = QMessageBox::question(NULL,"Thing", 
     "Do you want to do a thing?", 
     QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No); 

Les retours immédiatement d'appel et le bouton est réglé sur NoButton. Je devrais ajouter qu'il y a un peu de cadre autour de mes tests et je commence manuellement chaque test avec QTest :: qExec. (Le cadre n'a pas changé, j'en suis sûr)

Des idées sur ce qui pourrait être à l'origine de cela?

Edit:

Le eventloop commencé par le messagebox dans l'exemple ci-dessus a QuitNow valeur true, ce qui est à l'origine exec pour revenir tout de suite. Je cherche maintenant pourquoi c'est réglé, en attendant n'hésitez pas à m'éclairer!

Répondre

0

Cela était dû à l'appel de qApp-> exit() dans ma fonction cleanup(). Il n'y a pas besoin de faire ça!