Цвет ячеек Qt tableWidget

Я застрял при попытке установить цвет фона в 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

Решение

Вы выходите за рамки вашего столбца и количества строк. Ты устанавливаешь 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);
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector