如何在qt中将对象添加到现有布局中?--已解决

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

本文关键字:布局 解决 添加 qt 对象      更新时间:2023-10-16

我正在处理一个qt项目,我正在尝试将一个对象作为小部件添加到我的布局中,我该怎么做?

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();
}

QGridLayout::addWidget方法需要一个指向 QWidget 派生类实例的指针,因此GLobj恰好是这样的:

class GLobj : public QWidget
{
...

你可以做:

grid->addWidget(&obj);

如此处指定的文档,

addWidget(*Widget, row, column, rowspan, colspan)

所以替换

grid->addWidget(obj);//I'm not able to do it..

grid->addWidget(obj, 1, 1, 2, 2); //Now I'm able to do it.. :)