我正在使用 QTableView 和 QItemDelegate 的子类来控制表格视图单元格的外观和感觉。
每个单元格显示一个外部连接设备的名称和状态,最多可以连接100个设备。
每个设备的名称和类型基本上是静态的,很少更新(可能每小时一次),但是每个单元格需要显示设备输入的实时值,我目前每50毫秒轮询一次。这个值显示为由 TableView 提供给 Delegate::paint() 方法的 painter 绘制的基本条形图。
更新我的模型20次/秒的问题在于每次都会重新绘制整个表格,这非常低效。将 paint 方法限制为仅绘制条形图表明,大部分 CPU 时间用于绘制每个单元格上的名称、状态和相关图像,而不是绘制图表。
我需要找到一种定期更新每个单元格的图表而不重新绘制单元格的方法,但我无法想出如何做到这一点。
最有效的方法是什么?
编辑:附加图片以帮助理解。
图像表示 QTableView 中的 10 个传感器。数字、名称和状态几乎不变。旁边的条形图每50ms更新一次。我只想绘制这个条形图,而不是文本、状态和单元格背景。状态灯和背景是复杂的图像,所以比绘制和填充一个矩形需要更多的 CPU 时间。
每个单元格显示一个外部连接设备的名称和状态,最多可以连接100个设备。
每个设备的名称和类型基本上是静态的,很少更新(可能每小时一次),但是每个单元格需要显示设备输入的实时值,我目前每50毫秒轮询一次。这个值显示为由 TableView 提供给 Delegate::paint() 方法的 painter 绘制的基本条形图。
更新我的模型20次/秒的问题在于每次都会重新绘制整个表格,这非常低效。将 paint 方法限制为仅绘制条形图表明,大部分 CPU 时间用于绘制每个单元格上的名称、状态和相关图像,而不是绘制图表。
我需要找到一种定期更新每个单元格的图表而不重新绘制单元格的方法,但我无法想出如何做到这一点。
最有效的方法是什么?
编辑:附加图片以帮助理解。
图像表示 QTableView 中的 10 个传感器。数字、名称和状态几乎不变。旁边的条形图每50ms更新一次。我只想绘制这个条形图,而不是文本、状态和单元格背景。状态灯和背景是复杂的图像,所以比绘制和填充一个矩形需要更多的 CPU 时间。