Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QEventLoop

La classe QEventLoop permet d'entrer dans une boucle d'événements et d'en sortir. Plus d'informations...

#include <QEventLoop>

Voir la position dans l'arbre des classes.

  

Héritage

Hérite de QObject.

Description détaillée

La classe QEventLoop permet d'entrer dans une boucle d'événements et d'en sortir.

À tout moment, vous pouvez créer un objet QEventLoop et appeler exec() sur lui pour démarrer une boucle d'événements locale. Depuis la boucle d'événements, l'appel de exit() forcera la sortie de la fonction exec().

Voir aussi QAbstractEventDispatcher.

Type

enum QEventLoop::ProcessEventsFlagflags QEventLoop::ProcessEventsFlags

Cette énumération contrôle les types d'événements traités par les fonctions processEvents().

Constante Valeur Description
QEventLoop::AllEvents 0x00 Tous les événements. Notez que les événements DeferredDelete font l'objet d'un traitement spécial. Voir QObject::deleteLater() pour plus de détails.
QEventLoop::ExcludeUserInputEvents 0x01 Ne pas traiter les entrées utilisateur, comme ButtonPress et KeyPress. Notez que les événements ne sont pas annulés ; ils seront envoyés la prochaine fois que processEvents() sera appelé sans le drapeau ExcludeUserInputEvents.
QEventLoop::ExcludeSocketNotifiers 0x02 Ne pas traiter les événements de notification des sockets (réseau). Notez que les événements ne sont pas annulés ; ils seront envoyés la prochaine fois que processEvents() sera appelé sans le drapeau ExcludeUserInputEvents.
QEventLoop::WaitForMoreEvents 0x04 Attendre les événements si aucun événement n'est actuellement disponible.
QEventLoop::DeferredDeletion 0x10 obsolète - ne pas utiliser.

Le type ProcessEventsFlags est un typedef pour QFlags<ProcessEventsFlag>. Il enregistre une combinaison OU de valeurs de ProcessEventsFlag.

Voir aussi processEvents().

Fonctions membres

QEventLoop::QEventLoop ( QObject * parent = 0 )

Construit un objet boucle d'événements avec le parent donné.

QEventLoop::~QEventLoop ()

Détruit l'objet boucle d'événements.

int QEventLoop::exec ( ProcessEventsFlags flags = AllEvents )

Entre dans la boucle d'événements principale et attend que exit() soit appelé. Renvoie la valeur passée à exit().

Si des flags sont spécifiés, seuls les événements des types autorisés par les flags seront traités.

Il est nécessaire d'appeler cette fonction pour commencer le traitement des événements. La boucle d'événements principale reçoit des événements depuis le système de fenêtres et les transmet aux widgets de l'application.

De manière générale, aucune interaction avec l'utilisateur ne peut se faire avant l'appel d‹exec(). Le cas des widgets modaux comme QMessageBox est une exception. Les widgets peuvent être utilisés avant l'appel d‹exec() car ils possèdent leur propre boucle d'événements locale.

Pour que votre application exécute une tâche de fond (c'est-à-dire exécuter une fonction spéciale si aucun événement n'est en attente), utilisez un QTimer avec une minuterie de zéro. Vous pouvez créer des traitements de tâche de fond plus sophistiqués en utilisant processEvents().

Voir aussi QApplication::quit(), exit() et processEvents().

void QEventLoop::exit ( int returnCode = 0 )

Demande à la boucle d'événements de se terminer avec un code de retour.

Après l'appel de cette fonction, la boucle d'événements sort de l'appel à exec(). La fonction exec() renvoie returnCode.

Par convention, un returnCode de zéro indique un succès et un code différent de zéro un échec.

Notez que contrairement à la fonction de la bibliothèque C du même nom, cette fonction rend la main à l'appelant : c'est le traitement des événements qui s'arrête.

Voir aussi QCoreApplication::quit(), quit() et exec().

bool QEventLoop::isRunning () const

Renvoie true si la boucle d'événements est en cours d'exécution ; sinon renvoie false. La boucle d'événements est considérée en cours d'exécution depuis l'appel à exec() jusqu'à l'appel à exit().

Voir aussi exec() et exit().

bool QEventLoop::processEvents ( ProcessEventsFlags flags = AllEvents )

Traite les événements en attente correspondant à flags jusqu'à ce que tous les événements soient traités. Renvoie true si les événements en attente ont été traités ; sinon renvoie false.

Cette fonction est particulièrement utile si vous avez une opération longue à traiter et que vous voulez afficher son avancement sans autoriser les entrées utilisateur, par exemple en utilisant le drapeau ExcludeUserInputEvents.

Cette fonction est un simple habillage de QAbstractEventDispatcher::processEvents(). Voir la documentation de cette fonction pour plus de détails.

void QEventLoop::processEvents ( ProcessEventsFlags flags, int maxTime )

Traite les événements en attente correspondant à flags pendant un maximum de maxTime millisecondes ou jusqu'à ce que tous les événements soient traités, selon ce qui est le plus court. Cette fonction est particulièrement utile si vous avez une opération longue à traiter et que vous voulez afficher son avancement sans autoriser les entrées utilisateur, par exemple en utilisant le drapeau ExcludeUserInputEvents.

Notes : 

  • cette fonction ne traite pas les événements en continu ; elle se termine lorsque tous les événements disponibles ont été traités ;
  • l'activation du drapeau WaitForMoreEvents n'a pas de sens et sera ignoré.

void QEventLoop::quit () [slot]

Demande à la boucle d'événements de se terminer normalement.

Équivalent à exit(0).

Voir aussi QCoreApplication::quit() et exit().

void QEventLoop::wakeUp ()

Réveille la boucle d'événements.

Voir aussi QAbstractEventDispatcher::wakeUp().

Remerciements

Merci à Ilya Diallo pour la traduction et à Jonathan Courtois, Claude Leloup et Jacques Thery pour leur relecture !

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 53
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. La rubrique Qt a besoin de vous ! 1
Page suivante

Le Qt Quarterly au hasard

Logo

XQuery et la météo

Qt Quarterly est la revue trimestrielle proposée par Nokia et à destination des développeurs Qt. Ces articles d'une grande qualité technique sont rédigés par des experts Qt. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web