【QT】QTableWidget设置表格颜色

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的内存 需要人为释放,否则会造成内存泄漏

你可能感兴趣的:(QT,qt,开发语言)