Эффективное обновление QTableView на высокой скорости
Я использую QTableView с подклассом QItemDelegate для управления внешним видом ячеек таблицы.
Каждая ячейка отображает имя и статус подключенного извне устройства, и одновременно может быть подключено до 100 устройств.
Название и тип каждого устройства в основном статичны, обновляются очень редко (возможно, раз в час), но каждая ячейка должна отображать значение входа устройства в реальном времени, которое я в настоящее время опрашиваю каждые 50 миллисекунд. Это значение отображается в виде базовой гистограммы, нарисованной художником, предоставленным методу Delegate :: paint () в TableView.
Проблема с обновлением моей модели 20 раз в секунду заключается в том, что вся таблица перерисовывается каждый раз, что крайне неэффективно. Ограничение метода рисования только до рисования гистограммы показывает, что большая часть процессорного времени отводится для рисования имени, статуса и связанного изображения в каждой ячейке, а не на графике.
Мне нужно найти способ регулярно обновлять график для каждой ячейки, не перерисовывая ячейку, но я не могу понять, как это сделать.
Каков наиболее эффективный способ достижения этого?
Изменить: изображение прилагается, чтобы помочь.
Изображение представляет 10 датчиков в QTableView. Число, Имя и Статус практически статичны и почти никогда не обновляются. Гистограмма рядом с текстом «Значение датчика» обновляется каждые 50 мс. Я только хочу нарисовать эту строку, а не текст, статус и фон ячейки. Индикаторы состояния и фон являются сложными изображениями, поэтому занимают гораздо больше процессорного времени, чем простое рисование и заполнение прямоугольника.