我想在QTableWidget中重置颜色,但在i = j = 1
时出现内存冲突错误。请注意col = 3
和row = 8
。
int col= ui->ServiceTableWidg->columnCount();
int row=ui->ServiceTableWidg->rowCount();
for(int j=0 ; j<row ; j++)
{
for (int i=0 ; i<col ; i++)
{
if (ui->ServiceTableWidg->item(i,j) != NULL)
{
ui->ServiceTableWidg->item(i,j)->setBackground(Qt::white);
}
}
}
答案 0 :(得分:0)
您的QTableWidget中可能没有任何物品。首先,您必须通过调用setItem()方法创建它们,例如:
for(int i = 0; i < ui->tableWidget->rowCount(); i++)
for(int j = 0; j < ui->tableWidget->columnCount(); j++)
ui->tableWidget->setItem(i, j, new QTableWidgetItem(tr("some")));
你检查NULL是错误的。使用dynamic_cast,例如:
if(QTableWidgetItem *item = dynamic_cast<QTableWidgetItem *>(ui->tableWidget->item(i, j)))
item->setBackground(Qt::black);