9
votes

QT - Qu'est-ce que QApplication, simplement?

J'ai vu la description de qapplication dans la documentation qt , mais n'est-ce pas clair.

Pouvez-vous simplement simplement décrivez ce qu'il fait principalement?

Merci.


0 commentaires

3 Réponses :


1
votes

C'est un espace réservé pour tout l'état mondial de niveau d'application qui existe dans une langue non-OO.


4 commentaires

Pourquoi non-OO? QT est jolie oo sur une langue oo-capable (C ++).


@Mat: Je pense que vous avez peut-être mal interprété ma réponse. Une demande par ex. C a beaucoup d'état mondial qui doit être maintenu. qapplication prend la place de tout cet état mondial.


Pouvez-vous simplifier ce que vous voulez dire? Merci


Pas vraiment. Jetez un coup d'œil aux membres qapplication et réalisez que dans une application en C, la plupart d'entre elles seraient des variables globales ou des fonctions au lieu de collectées dans un seul objet.



11
votes

La chose la plus importante à savoir sur qapplication est que sa méthode EXEC exécute la boucle d'événement, qui est fondamentalement la pièce de logiciels qui fait des fentes et des signaux fonctionnent.

Pour le mettre simplement, s'il n'y a pas de boucle d'événement en cours d'exécution, les événements tirés par vos composants de l'interface graphique ne seront pas propagés du tout, de sorte que votre interface utilisateur ne fera tout simplement rien du tout.


2 commentaires

Bonne réponse! Pouvez-vous simplement expliquer ce que vous entendez par: «... S'il n'y a pas de boucle d'événement courante, les événements tirés par vos composants d'interface graphique ne seront pas propagés du tout ...». Merci


@ user714961: Un programme d'interface graphique fonctionne toujours dans une boucle en attente du signal de travailler et de retourner à la boucle après avoir terminé un travail. Ceci est différent d'un programme de console, qui commence normalement, effectuez son travail, puis quittez.



2
votes

Il suffit de mettre

a q * application est ce que garde l'application QT vivante en exécutant sa boucle d'événement principale . Il traite tous les événements (souris, clavier, rafraîchir), emplacements de signaux, minuteries et la plupart des fonctionnalités QT nécessitant une sorte d'asynchronisme ou de manipulation d'événements (GUI, OS, ...).

< Strong> sans application Q *, vous ne pouvez exécuter essentiellement que le code QT séquentiellement . Ce que je veux dire par là est: pas de minuterie QT, aucune interaction du système d'exploitation / utilisateur. Ce qui est parfois recherché, par exemple dans des tests d'unités.

La boucle d'événement du fil principal démarre dès que vous appelez l'application Q * exécuté () méthode et bloque jusqu'à la sortie de l'application.

Choisir la bonne requête Q *

Selon votre type d'application, vous voudrez une saveur différente de cette classe pour éviter de tirer des dépendances inutiles:


0 commentaires