How to use OpenGL functions on a QT OpenGL Widget?
I'm starting off QT 4.6's example "OpenGL - 2D painting"
It uses a subclass of QGLWidget, and makes painting operations with the class QP开发者_开发百科ainter. I'd like to know how to do drawing directly with OpenGL functions on the OpenGL Widget.If you use the widget as described in its manual, you can just use the OpenGL functions as usual. For example (copied from the manual):
class MyGLDrawer : public QGLWidget
{
Q_OBJECT // must include this if you use Qt signals/slots
public:
MyGLDrawer(QWidget *parent)
: QGLWidget(parent) {}
protected:
void initializeGL()
{
// Set up the rendering context, define display lists etc.:
...
glClearColor(0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
...
}
void resizeGL(int w, int h)
{
// setup viewport, projection etc.:
glViewport(0, 0, (GLint)w, (GLint)h);
...
glFrustum(...);
...
}
void paintGL()
{
// draw the scene:
...
glRotatef(...);
glMaterialfv(...);
glBegin(GL_QUADS);
glVertex3f(...);
glVertex3f(...);
...
glEnd();
...
}
};
精彩评论