Pergunta

Eu fiz um projeto com Qt e OpenGL.

Em Qt paintGL () foi repetidamente chamar eu acredito, então eu era capaz de mudar valores fora dessa função e atualização chamada () para que ele iria pintar uma nova imagem. Eu também acredito que ele chamou initializeGL () assim que você iniciar o programa.

Agora, a minha pergunta é:

Eu quero que mesma funcionalidade em um programa diferente. Eu não preciso para tirar quaisquer imagens, etc. Eu só queria saber se havia uma maneira de fazer uma função como paintGL () que continua sendo chamado para que o aplicativo nunca fecha. Eu tentei usar apenas um (true) loop while que manteve o meu programa em execução, mas a GUI ficou inativo por causa do loop while.

Todas as dicas, que não enfiar preferência.

Graças.

Foi útil?

Solução

O mecanismo exato vai depender de qual GUI Toolkit você está usando. Em geral, seu aplicativo precisa para atender o loop de execução constantemente para eventos a serem despachados. É por isso que a sua aplicação não respondeu quando você tinha que correr em um loop while.

Se você precisa de algo repintado constantemente, a maneira mais fácil é criar um temporizador quando sua janela é criada, e depois no temporizador mesmo manipulador ou de retorno de chamada, você invalidar a janela que forças repintar. Seu manipulador de tinta pode, então, ser chamado na freqüência de seu temporizador, como 25 vezes por segundo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top