Qt qtableWidget单元格颜色

时间:2013-11-04 03:20:47

标签: c++ qt colors widget cell

我一直试图在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 ); ,然后它适用于一个单元格。但实际上,我需要设置所有单元格或部分单元格。如果你帮助我,我将非常感激!

1 个答案:

答案 0 :(得分:0)

您将超越列数和行数。您将columnCountrowCount设置为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);
    }
}