Actualización eficiente de un QTableView a alta velocidad

Estoy usando un QTableView con una subclase de QItemDelegate para controlar el aspecto de las celdas de la vista de tabla.

Cada celda muestra el nombre y el estado de un dispositivo conectado externamente, y se pueden conectar hasta 100 dispositivos a la vez.

El nombre y el tipo de cada dispositivo es esencialmente estático, se actualiza muy raramente (tal vez una vez por hora), pero cada celda necesita mostrar un valor en tiempo real de la entrada del dispositivo, que actualmente sondeo por cada 50 milisegundos. Este valor se muestra como un gráfico de barras básico dibujado por el pintor proporcionado al método Delegate :: paint () por TableView.

El problema con la actualización de mi modelo 20 veces por segundo es que la tabla completa se vuelve a dibujar cada vez, lo cual es muy ineficiente. Limitar el método de pintura a solo dibujar el gráfico de barras muestra que la mayor parte del tiempo de la CPU se dedica a dibujar el nombre, el estado y la imagen asociada en cada celda, en lugar del gráfico.

Lo que necesito encontrar es una forma de actualizar el gráfico para cada celda regularmente sin volver a dibujar la celda, pero no puedo encontrar la manera de hacerlo.

¿Cuál es la forma más eficiente de lograr esto?

Editar: Imagen adjunta para ayudar.

La imagen representa 10 sensores en un QTableView. El número, el nombre y el estado son prácticamente estáticos, casi nunca se actualizan. El gráfico de barras junto al texto 'Valor del sensor' se actualiza cada 50 ms. Solo quiero pintar esta barra, en lugar del texto, el estado y el fondo de la celda. Las luces de estado y el fondo son imágenes complejas, así que toma mucho más tiempo de CPU que simplemente dibujar y llenar un rect.

Respuestas a la pregunta(3)

Su respuesta a la pregunta