如下代码,new了500个pushbutton,是否需要delete呢?
答案:不需要,只要pushbutton所在的类的析构函数里有delete pushbutton的父类即可在qt的半自动内存回收机制内被自动回收
for(int j=0;j<100;j++)
{
endRow = 0;
QHBoxLayout *bl = new QHBoxLayout();
bl->setMargin(1);
for(int i=0;i<5;i++)
{
//if(endRow<list_plt.size())
if(endRow<5)
{
pushButton[i+j*5] = new QPushButton();
pushButton[i+j*5]->setMinimumSize(155,75);
// pushButton[i+j*5]->setText(list_plt[i+j*5]->name);
// pushButton[i+j*5]->setObjectName(QString::number(list_plt[i+j*5]->id));
pushButton[i+j*5]->setText(QString::number(i+j*5));
pushButton[i+j*5]->setObjectName(QString::number(i+j*5));
pushButton[i+j*5]->setStyleSheet("background-color: rgb(94, 211, 51);");
bl->addWidget(pushButton[i+j*5]);
connect(pushButton[i+j*5],SIGNAL(clicked()),this,SLOT(checkedBtn()));
}
endRow++;
}
mainVLayout->addLayout(bl);
// bl->deleteLater();
}