Есть TableWdiget. Размер 24 * 64 ячейки.
Есть такой же массив uin8_t.
Нужно пройтись по этому массиву и в зависимости от значения ячейки массива зарисовать нужным цветом ячейку в таблице.
Вот мой код
void CShnHandler::updateTable(QTableWidget * tab,int modCount, int modPin, uint8_t * dataPtr)
{
if(tab && modCount && modPin && dataPtr)
{
tab->setUpdatesEnabled(false);
for(int col = 0; col<modCount; col++)
for(int row = 0; row<modPin; row++)
{
switch(dataPtr[col*modPin+row])
{
case 0:
tab->item(row,col)->setBackgroundColor(Qt::gray);
break;
case 1:
tab->item(row,col)->setBackgroundColor(Qt::green);
break;
case 2:
tab->item(row,col)->setBackgroundColor(Qt::red);
break;
default:
tab->item(row,col)->setBackgroundColor(Qt::blue);
break;
}
}
tab->setUpdatesEnabled(true);
}
}
Данные обновляю с частотой 4 раза в секунду. процессор грузится на 35-40%.
Может есть более оптимальный способ быстрой отрисовки ячеек?