nach längerem Hin und Her, scheint sich wohl eine Möglichkeit ergeben zu haben, GUI-Widgets auf ein OpenGL-Fenster zu legen. Hier
Laut Beschreibung: All that’s needed is to set a QGLWidget as viewport on the graphics view, override QGraphicsScene::drawBackground() to do the OpenGL rendering, and add widgets and other graphics items to the graphics scene as usual.
Den Code habe ich mehr oder weniger verstanden. Aber mir ist nicht ganz klar wie ich mein eigenes QGLWidget einbinde. Also in der main wird einfach folgendes gemacht.
Ich dachte ich könnte als viewport mein eigenes GLWidget integrieren (in dem ich den ganzen Code mit den typischen OpenGL-Befehlen habe)
Code:
void initializeGL();
void paintGL();
void resizeGL(int width, int height);)
Allerdings ging das bei mir irgendwie nicht.
Auch die QGraphicsScene::drawBackground()-Funktion wird mir nicht ganz klar. Diese modelt wohl den OpenGL-Code in eine Art Hintergrund um, um dann darauf die die GUI-Widgets zu legen. Allerdings wird da irgendwie eine Painter-Engine erstellt. Wozu ich diese brauche, ist mir schleierhaft.
Code:
if (painter->paintEngine()->type() != QPaintEngine::OpenGL
qWarning("OpenGLScene: drawBackground needs a QGLWidget to be set as viewport on the graphics view");
return;
}
In dieser Funktion befindet sich auch OpenGL-Code. Aber Dinge wie swapBuffers() kann man dort nicht aufrufen.Also muss doch der eigentliche OpenGL-Code (mit seinen typischen Funktionen und Anwendungen) irgendwo extern gelagert sein.
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.