Using QOpenGLWidget



  • Hello,
    I'm trying to use OpenGL inside of Qt using QOpenGLWidget, but I am having a hard time finding any relevant examples. I am new to OpenGL, so I am trying to learn how to use it, but the tutorials that I find don't seem to apply particularly well in QOpenGLWidget. Right now, all I want to do is render a triangle to start with.

    Here's what I have so far.

    Header:

    namespace Ui {
    class Widget;
    }
    
    class Widget : public QOpenGLWidget, protected QOpenGLFunctions
    {
    public:
        explicit Widget(QWidget *parent = 0);
        ~Widget();
    
    protected:
        void initializeGL();
        void resizeGL(int, int);
        void paintGL();
    
    private:
        Ui::Widget *ui;
    };
    

    Class:

    Widget::Widget(QWidget *parent) :
        QOpenGLWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
    }
    
    void Widget::initializeGL()
    {
        // Set up the rendering context, load shaders and other resources, etc.:
        initializeOpenGLFunctions();
        glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
    }
    
    void Widget::resizeGL(int w, int h)
    {
        // Update projection matrix and other size-related settings:
    }
    
    void Widget::paintGL()
    {
        // Draw the scene:
        glClear(GL_COLOR_BUFFER_BIT);
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    

    Is there any example I could use to just render a basic triangle? I tried the one from here: https://www.khronos.org/assets/uploads/books/openglr_es_20_programming_guide_sample.pdf, but it threw a lot of errors that I couldn't work out.

    I also don't know how OpenGL contexts work in QOpenGLWidget.



  • http://www.trentreed.net/blog/qt5-opengl-part-0-creating-a-window/

    Follow thoose tutorials or at least the part 0, 1 ,2 ,3a, 3b and you will have decent basis to start.

    In the tutorial he use QOpenGLWindow which isn't really far from QOpenGLWidget so I think you should be able to adapt his code a bit to suit your need but if you didn't succed to do it ask here again.

    Do you look for opengl ressources to ?



Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.