Я пытаюсь реализовать собственную сцену OpenGL (обернутую в QGLWidget), но все еще использую элементы управления QT (такие как ползунки и кнопки). Я попытался сделать мой основной виджет QGLWidget, который имеет QWidgets в качестве детей. Дочерние виджеты, кажется, работают (когда я щелкаю раскрывающееся меню, появляются его параметры), но виджет не отображается (я вижу белый квадрат). Я изменил базовый класс своих дочерних виджетов с QWidget на QGLWidget, и теперь QPainter вызывает работу, но графический интерфейс QT по-прежнему не отображается ...
Некоторые утверждают, что QGLWidget не может иметь QWidget в качестве детей ... Я не уверен в этом и не хочу сдаваться. Кстати, я использую библиотеку визуализации для рисования сцены OpenGL, но это всего лишь оболочка OpenGL ...
Любые подсказки, где проблема может быть? Кроме того, ключевые события перестают обрабатываться по некоторым причинам, когда я добавляю подвиджеты в GQLWidget.
Обновление:
Я пробовал различные комбинации виджетов и макетов. Кажется, что QGLWidget просто рисуется поверх чего-либо. Я даже пытался с помощью метода повысить () упорядочить Z-глубину виджетов, но безрезультатно. Является ли overlayGL () единственным способом рисования поверх виджета OpenGL?
Обновление 2
После нескольких месяцев попыток я понял, что это связано с QT. Всякий раз, когда QGLWidget рисуется поверх другого QGLWidget, первая функция background () не вызывается. Таким образом, кнопка есть и может быть нажата, но она не нарисована. Мой обходной путь должен был нарисовать все сам, используя QPainter - это работает. Что мне показалось любопытным, так это то, что нужно использовать QPainter :: startNativePainting (), чтобы рисовать с ним. Можно было бы ожидать, что они перегрузят start () в QPainter для вызова startNativePainting () всякий раз, когда QGLWidget является устройством рисования ...
Другой (возможно, полезный) факт заключается в том, что QPainter вызывает CHANGE контекст Opengl. Так что, если у вас есть другой инструмент в сотрудничестве с QPainter (в моем случае библиотека визуализаций), есть вероятность, что один из них потерпит крах (в моем случае VL, который проверяет, очищено ли состояние контекста перед каждым кадром).