QTableWidget实时指定行颜色高亮
时间: 2023-06-14 13:08:28 浏览: 232
QTableWidget批量添加数据、批量添加控件、分页跳转、定位到指定行、添加/插入/删除行的功能实现
5星 · 资源好评率100%
可以使用QTableWidget的item()方法来获取单元格,并使用setBackground()方法设置单元格的背景色。要实时高亮整行,可以遍历该行的所有单元格,并设置它们的背景色。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QColor
class MyTableWidget(QTableWidget):
def __init__(self, rows, columns):
super().__init__(rows, columns)
# 设置行数和列数
self.setRowCount(rows)
self.setColumnCount(columns)
# 填充数据
for row in range(rows):
for col in range(columns):
item = QTableWidgetItem(f"({row}, {col})")
self.setItem(row, col, item)
# 设置单元格选择模式为整行选择
self.setSelectionBehavior(QTableWidget.SelectRows)
def highlightRow(self, row, color):
# 遍历指定行的所有单元格
for col in range(self.columnCount()):
item = self.item(row, col)
item.setBackground(color)
if __name__ == '__main__':
app = QApplication([])
table = MyTableWidget(5, 3)
table.show()
# 实时高亮第2行为蓝色
while True:
table.highlightRow(1, QColor(0, 0, 255))
app.processEvents()
```
该代码创建了一个5行3列的QTableWidget,并填充了数据。然后,它设置了单元格选择模式为整行选择。最后,它在一个无限循环中实时高亮第2行为蓝色。注意,`app.processEvents()`方法用于处理事件,以便GUI能够实时响应。
阅读全文