Question

J'ai créé un projet avec Qt et OpenGL.

Dans Qt, paintGL () a été appelé à plusieurs reprises, je crois, ce qui m'a permis de modifier les valeurs en dehors de cette fonction et d'appeler update () afin qu'il puisse afficher une nouvelle image. Je pense aussi qu’il a appelé initializeGL () dès le lancement du programme.

Maintenant, ma question est la suivante:

Je veux la même fonctionnalité dans un programme différent. Je n'ai pas besoin de dessiner d'images, etc. Je me demandais simplement s'il existait un moyen de créer une fonction telle que paintGL () qui continue à être appelée pour que l'application ne se ferme jamais. J'ai juste essayé d'utiliser une boucle while (vraie) qui maintenait mon programme en marche, mais l'interface graphique était inactive à cause de la boucle while.

Toute astuce, autre que le filetage de préférence.

Merci.

Était-ce utile?

La solution

Le mécanisme exact dépendra de la boîte à outils graphique que vous utilisez. En général, votre application doit entretenir la boucle d'exécution de manière constante pour que les événements soient envoyés. C'est pourquoi votre application ne répondait plus lorsque vous l'aviez exécutée dans une boucle while .

Si vous avez besoin de repeindre en permanence, le plus simple est de créer une minuterie lors de la création de votre fenêtre, puis dans le gestionnaire ou le rappel de la minuterie, vous invalidez la fenêtre qui oblige à la repeindre. Votre gestionnaire de peinture peut ensuite être appelé à la fréquence de votre minuterie, telle que 25 fois par seconde.

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