Я застрял при попытке установить цвет фона в 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);
}
}
Других решений пока нет …