Search code examples
c++qtuser-interfaceqlayout

How to add an object into an existing layout in qt? --Solved


I am working on a qt project and I am trying to add an object as a widget into my layout, how can I do that?

int main(int argc, char *argv[])
{

        QApplication app(argc, argv);
        GLobj obj; //this is the object I want to add and it extends QGLWidget
        QWidget *window = new QWidget;
        QGridLayout *grid = new QGridLayout;

        grid->addWidget(&obj,0,0,4,5);//it works

        window->setLayout(grid);            
        window->show();
        return app.exec();
 }

Solution

  • The QGridLayout::addWidget method expects a pointer to an instance of a QWidget-derived class, thus if GLobj happens to be something like:

    class GLobj : public QWidget
    {
    ...
    

    you can do:

    grid->addWidget(&obj);