1.增加widget和QLabel来进行布局,但是表格清空的时候不会释放widget、label、和layout 会造成内存泄漏
pDefine = new QTableWidgetItem((int)runStateV.at(i).state);
pDefine->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
//增加widget+布局实现Label居中
label = new QLabel();
widget = new QWidget;
layout = new QHBoxLayout;
layout->setSpacing(0);
layout->setMargin(0);
layout->addWidget(label);
widget->setLayout(layout);
setCellWidget(i, 3, widget);
label->setStyleSheet("QLabel { border - radius:5px;}");
label->setStyleSheet(QString("QLabel { background-color : %1}").arg(m_reseultDefineColor.at((int)runStateV.at(i).state)));
label->setMaximumHeight(16);
label->setMinimumHeight(16);
label->setMaximumWidth(16);
label->setMinimumWidth(16);
2.设置表格图标 这种方式在调用clearContent的时候可以将item项全部清空不会造成内存泄漏
pDefine = new QTableWidgetItem();
pDefine->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
pDefine->setIcon(QIcon(":/new/prefix1/Resources/grey.png"));
在Item中增加QCombobox QLabel等控件 调用clearContent 不会清控件的内存 只会清item的内存 需要人为释放,否则会造成内存泄漏。