Python GUI:如何在 QTableView 中设置行... 笔记

Python GUI:如何在 QTableView 中设置行背景色——使用 Qt 的 BackgroundRole 根据数据为整行着色

要在 QTableView 中直观地指示设备状态,可以通过自定义模型的 data() 方法来高亮整行。QTableView 视图会为每个单元格查询模型的各种数据角色,包括 Qt.BackgroundRole。当模型在请求 Qt.BackgroundRole 时,根据该行数据中的条件从 data() 方法返回一个 QColor,即可设置背景色。关键在于,该颜色会应用于该行中的所有单元格,因为 data() 方法会被每个单元格调用,且颜色决策不依赖于列索引。示例通过为“NewConnection"状态行设置蓝色、为"Registered"状态行设置绿色来演示这一点。为确保彩色背景上的文本可读性,您还可以处理 Qt.ForegroundRole 并返回对比鲜明的文本颜色。如果数据动态变化,必须从模型中发出 dataChanged 信号,以提示视图重新渲染并显示更新后的行颜色。这种方法提供了一种清晰、基于数据的高亮 QTableView 行的方案。