Ho un file QML che contiene un layout di elementi QML e ora voglio che uno di questi elementi sia QGLWidget. Ad esempio, voglio eseguire il rendering su un oggetto QML specifico.Rendering OpenGL su un elemento QML
Qualcuno sa come fare?
Ho un file QML che contiene un layout di elementi QML e ora voglio che uno di questi elementi sia QGLWidget. Ad esempio, voglio eseguire il rendering su un oggetto QML specifico.Rendering OpenGL su un elemento QML
Qualcuno sa come fare?
Il modo più semplice è supporre che fornisca a QML un nuovo componente personalizzato implementato in C++. Non ho trovato nulla pronto.
È possibile creare sottoclasse di QDeclarativeItem e implementare il codice OpenGL nella funzione di disegno dopo aver utilizzato la funzione QPainter::beginNative(). Dopodiché puoi "esportare" il tuo nuovo oggetto personalizzato su QML this way. Questo è abbastanza semplice e dovrebbe funzionare, ma si dovrà impostare il viewport di voi QDeclarativeView essere un QGLWidget, qualcosa di simile:
QDeclarativeView view;
// This is needed because OpenGL viewport doesn't support partial updates.
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode);
view.setViewport(new QGLWidget);
o si dovrà utilizzare il sistema di grafica OpenGL per l'intera applicazione. Un altro modo sta usando QML/3D.
This thread vi darà qualche altra informazione.
Il collegamento ai documenti QML/3D è cambiato, l'ho aggiornato. –