userdefined functions must also be called from PaintGL and in that functions we can still use our core opengl commands to draw the polygons and the textures and stuff like that..Is it correct?
Yes. You can also use standard QPainter 2D drawing on the QGlWidget, if you reimplement paintEvent.