неоднократно рендеринг цикла с Qt и OpenGL - PullRequest
1 голос
/ 27 ноября 2009

Я сделал проект с Qt и OpenGL.

В Qt paintGL () неоднократно вызывался так, как я считаю, поэтому я смог изменить значения вне этой функции и вызвать update (), чтобы он рисовал новое изображение. Я также считаю, что он вызывал initializeGL (), как только вы запускаете программу.

Теперь мой вопрос:

Мне нужна та же функциональность в другой программе. Мне не нужно рисовать какие-либо изображения и т. Д. Мне просто было интересно, есть ли способ сделать функцию вроде paintGL (), которая будет вызываться так, чтобы приложение никогда не закрывалось. Я попытался использовать цикл while (true), который поддерживал мою программу, но графический интерфейс был неактивен из-за цикла while.

Любые наконечники, кроме резьбы желательно.

Спасибо.

1 Ответ

2 голосов
/ 27 ноября 2009

Точный механизм будет зависеть от того, какой инструментарий GUI вы используете. В общем, ваше приложение должно постоянно обслуживать цикл выполнения для отправки событий. Вот почему ваше приложение не отвечало, когда оно работало в цикле while.

Если вам нужно что-то перекрашивать постоянно, самый простой способ - создать таймер при создании вашего окна, а затем даже в обработчике или обратном вызове таймера вы аннулируете свое окно, которое вызывает перерисовку. Ваш обработчик рисования может вызываться с частотой вашего таймера, например, 25 раз в секунду.

...