Pregunta

He hecho un proyecto con Qt y OpenGL.

En Qt, paintGL () fue repetidamente llamado I beleive, así que pude cambiar valores fuera de esa función y llamar a update () para que pintara una nueva imagen. También creo que se llamó initializeGL () tan pronto como inicies el programa.

Ahora mi pregunta es:

Quiero esa misma funcionalidad en un programa diferente. No necesito dibujar ninguna imagen, etc. Me preguntaba si existía una forma de realizar una función como paintGL () que se sigue llamando para que la aplicación nunca se cierre. Intenté usar solo un bucle while (verdadero) que mantuvo mi programa en ejecución, pero la GUI estaba inactiva debido al bucle while.

Cualquier consejo, excepto el enhebrado preferiblemente.

Gracias.

¿Fue útil?

Solución

El mecanismo exacto dependerá del kit de herramientas GUI que estés usando. En general, su aplicación necesita mantener el bucle de ejecución constantemente para que se envíen eventos. Es por eso que su aplicación no respondió cuando la ejecutaba en un while .

Si necesita volver a pintar algo constantemente, la forma más sencilla es crear un temporizador cuando se crea su ventana, y luego, en el controlador del temporizador o la devolución de llamada, invalida su ventana, lo que obliga a un repintado. A continuación, puede llamar a su controlador de pintura a la frecuencia de su temporizador, como 25 veces por segundo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top