我陷入尝试在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 );
,那么它适用于一个单元。但是,实际上,我需要设置所有或部分单元格。如果您能帮助我,我将不胜感激!
最佳答案
您已经超出了列数和行数。您将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);
}
}
关于c++ - Qt QTableWidget细胞颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19761151/