Russian Qt Forum
Декабрь 28, 2024, 01:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Медленно закращиваются ячейки в TableWidget  (Прочитано 1667 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Июль 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%.
Может есть более оптимальный способ быстрой отрисовки ячеек?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Июль 06, 2011, 17:40 »

решение оказалось простым: нет смысла использовать setUpdatesEnabled(...). Без него работает намного быстрее, загрузка 0%.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.