Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Fregloin от Июль 06, 2011, 17:06



Название: Медленно закращиваются ячейки в TableWidget
Отправлено: Fregloin от Июль 06, 2011, 17:06
Есть 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%.
Может есть более оптимальный способ быстрой отрисовки ячеек?


Название: Re: Медленно закращиваются ячейки в TableWidget
Отправлено: Fregloin от Июль 06, 2011, 17:40
решение оказалось простым: нет смысла использовать setUpdatesEnabled(...). Без него работает намного быстрее, загрузка 0%.