次のように、以前に QGLWidget から派生しました。
class MyGLWidget : public QGLWidget
{
public:
// stuff...
virtual void initializeGL() { /* my custom OpenGL initialization routine */ }
// more stuff...
};
ただし、カスタム QGLWidget をビューポートとして使用して QGraphicsView を初期化しようとすると、initializeGL が呼び出されないことがわかりました (Qt ライブラリ内にブレークポイントを設定しても、QGLWidget::initializeGL() がプレーンに作成された場合も同様です)。
// initializeGL, resizeGL, paintGL not called
ui.graphicsView->setViewport(new MyGLWidget(QGLFormat(QGL::DoubleBuffer)));
// initializeGL, resizeGL, paintGL *still* not called
ui.graphicsView->setViewport(new QGLWidget(QGLFormat(QGL::DoubleBuffer)));
現在 MyGLWidget::initializeGL() に存在するコードを配置する正しい場所はどこですか?