Ответ 1
QT 5.1 находится в странной ситуации OpenGL и QWidget
(и производной) мудрой. Нет замены QGLWidget
, но все остальные классы QGL имеют явные замены.
Если вы не хотите использовать старый QGLWidget
, вам действительно нужно произвести замену с помощью QWindow
. Итак, сначала вы настроили свой QWindow
, а затем, как вы правильно сказали, вызовите setSurfaceType( OpenGLSurface );
, прежде чем вы назовете create();
на нем. Затем вы создаете новый QOpenGLContext
и используете его функцию makeCurrent()
и передаете QWindow
. Затем вы создаете QWidget
из QWindow
, используя QWidget::createWindowContainer(window);
Но это только временный взлом, который вам не нужно использовать, если вы действительно не хотите смешивать QtQuick с QWidget. Затем вы можете заменить этот временный взлом фактической заменой в 5.2.0 5.4.0 называется QOpenGLWidget