многократный цикл рендеринга с помощью Qt и OpenGL

StackOverflow https://stackoverflow.com/questions/1807857

  •  05-07-2019
  •  | 
  •  

Вопрос

Я создал проект с использованием Qt и OpenGL.

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

Теперь мой вопрос заключается в следующем:

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

Предпочтительно любые наконечники, кроме нарезания резьбы.

Спасибо.

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top