我一直试图在Qt tableWidget中设置背景颜色。我非常希望得到你的帮助。 这是我的代码。
QColor colorLive( Qt::red );
ui->tableWidget->setRowCount(14);
ui->tableWidget->setColumnCount(14);
for (int g = 0; g < 15; ++g)
{
for (int i = 0; i < 15; ++i)
{
ui->tableWidget->setItem( g, i, new QTableWidgetItem );
ui->tableWidget->item( g, i )->setBackgroundColor( colorLive );
// error here
}
}
应用程序输出显示下一个:The program has unexpectedly finished.
但是,如果我改变代码的错误行
ui->tableWidget->item( 0, 0 )->setBackgroundColor( colorLive );
,然后它适用于一个单元格。但实际上,我需要设置所有单元格或部分单元格。如果你帮助我,我将非常感激!
答案 0 :(得分:0)
您将超越列数和行数。您将columnCount
和rowCount
设置为14.这意味着有效范围是0-13。但是在你的for循环中,你将经历0-14行和0-14行。第14行和第14列无效。
这应该解决它:
int rows = 14;
int columns = 14;
QColor colorLive(Qt::red);
ui->tableWidget->setRowCount(rows);
ui->tableWidget->setColumnCount(columns);
for (int g = 0; g < rows; ++g)
{
for (int i = 0; i < columns; ++i)
{
ui->tableWidget->setItem(g, i, new QTableWidgetItem);
ui->tableWidget->item(g, i)->setBackgroundColor(colorLive);
}
}