Question

Je viens juste de commencer à apprendre Qt, qui est ma première expérience avec les interfaces graphiques. Jusqu'ici, il ne s'agissait que d'applications pour console et d'un peu de SDL.

Je suis très confus avec cette histoire de signaux et de slots. Je viens de terminer le didacticiel 11 . Lorsque vous appuyez sur Shoot, le bouton Shoot envoie un signal, qui est connecté à la fente du Cannonfield, pour le "Shoot". une fonction. La fonction de prise de vue lance une minuterie qui émet un signal toutes les 5 ms pour indiquer à la prise de vue d'avancer d'une image. Je reçois tout ça.

J'ai essayé de mettre une boucle de 0 à 999, qui envoyait i à la sortie de l'application pour que je puisse voir ce qui s'était passé. C'est là que je commence à être confus. Parfois, il commence à imprimer les chiffres 0, 1, 2, 3, etc., en saisit quelques-uns (disons 10), puis déclenche la prise de vue. Lorsque le plan sort de l'écran, il imprime le reste jusqu'à 999. Parfois, il n'imprime rien. , déclenche le tir, puis imprime 0 à 999. D'autres fois, tout est imprimé, puis le tir est déclenché. Suis-je en train de me confondre en regardant la sortie dans Qt Creator en même temps que mon programme est en cours d'exécution?

Était-ce utile?

La solution

Ceci est un problème avec les frameworks basés sur les boucles de messages où tout est fait dans un seul thread principal. Veuillez consulter ma réponse à une question similaire ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top