2009-08-16 7 views
6

Je veux créer une fenêtre contextuelle Qt qui se comportera comme une boîte de message dans Qt. Cela signifie que le reste de l'interface graphique doit être bloqué jusqu'à ce que cette fenêtre contextuelle soit fermée. Cela peut être une question d'enfant, mais quelqu'un peut-il m'aider avec ceci?Comment créer une fenêtre Qt se comporter comme une boîte de message?

Merci ... :)

Edit:

Je veux utiliser des formulaires, des étiquettes, des boutons et d'autres types de widget dans cette fenêtre pop-up.

Répondre

17

Modal Dialogs

Une boîte de dialogue modale est une boîte de dialogue qui bloque l'entrée à d'autres fenêtres visibles dans la même application. Les utilisateurs doivent terminer en interaction avec la boîte de dialogue et fermer avant de pouvoir accéder à une autre fenêtre dans l'application. Les boîtes de dialogue utilisées pour demander un nom de fichier à l'utilisateur ou qui sont utilisées pour définir les préférences d'application sont généralement modal.

La manière la plus courante d'afficher une boîte de dialogue modale consiste à appeler sa fonction exec(). Lorsque l'utilisateur ferme la boîte de dialogue, exec() fournira une valeur de retour utile . Généralement, pour fermer la boîte de dialogue et renvoyer la valeur appropriée, nous connectons un bouton par défaut, par exemple. "OK", à l'emplacement accept() et un bouton "Annuler" à l'emplacement de rejet(). Vous pouvez également appeler le slot() done (Accepté ou Refusé).

Une alternative consiste à appeler setModal (true) ou setWindowModality(), puis show(). Contrairement à exec(), show() renvoie immédiatement le contrôle à l'appelant . Appelez setModal (true) est particulièrement utile pour les boîtes de dialogue de progrès, où l'utilisateur doit avoir la capacité d'interagir avec la boîte de dialogue, par exemple. pour annuler une opération longue durée . Si vous utilisez show() et setModal (true) ensemble pour effectuer une opération à long , vous devez appeler QApplication :: processEvents() périodiquement pendant le traitement pour permettre à l'utilisateur d'interagir avec la boîte de dialogue . (Voir QProgressDialog.)

+0

Merci pour le guide .. Je vais l'essayer .. – Morpheus

+0

ouais ... c'est ce que je veux. Merci beaucoup.. – Morpheus

Questions connexes