遍历每一列。
记录每一列中出现过的所有内容及其对应的行号。
检查哪些内容在该列中出现多次。
将出现多次的内容的单元格背景设置为红色。
from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QColor
def check_and_highlight_columns(self):
# 获取表格的行数和列数
row_count = self.class_teacher_info_table.rowCount()
column_count = self.class_teacher_info_table.columnCount()
# 遍历每一列
for col in range(column_count):
content_rows = {} # 用于记录每一列中出现过的所有内容及其对应的行号
# 遍历每一行
for row in range(row_count):
current_item = self.class_teacher_info_table.item(row, col)
if current_item is None:
continue # 如果当前单元格为空,跳过
current_text = current_item.text()
if current_text not in content_rows:
content_rows[current_text] = []
content_rows[current_text].append(row)
# 检查哪些内容在该列中出现多次,并将这些单元格的背景设置为红色
for text, rows in content_rows.items():
if len(rows) > 1:
for row in rows:
item = self.class_teacher_info_table.item(row, col)
if item is not None:
item.setBackground(QColor('red'))
# 调用方法
check_and_highlight_columns(self)