У меня есть файл QML, который содержит макет элементов QML, и теперь я хочу, чтобы один из этих элементов был QGLWidget. т. е. я хочу отобразить определенный элемент QML.
Кто-нибудь знает, как это сделать?
У меня есть файл QML, который содержит макет элементов QML, и теперь я хочу, чтобы один из этих элементов был QGLWidget. т. е. я хочу отобразить определенный элемент QML.
Кто-нибудь знает, как это сделать?
Я полагаю, что самый простой способ предоставить QML новый пользовательский компонент, реализованный на C++. Я не нашел ничего готового.
Вы можете создать подкласс QDeclarativeItem и реализовать свой код OpenGL в функции рисования после использования QPainter: :beginNative(). После этого вы можете «экспортировать» свой новый пользовательский элемент в QML вот сюда. Это довольно просто и должно работать, но вам нужно будет настроить область просмотра вашего QDeclarativeView как QGLWidget, что-то вроде этого:
QDeclarativeView view;
// This is needed because OpenGL viewport doesn't support partial updates.
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode);
view.setViewport(new QGLWidget);
или вам придется использовать графическую систему opengl для всего приложения. Другой способ — использовать QML/3D.
В этой теме вы найдете другую информацию.