QtableWidget将选中的单元格设置为某个颜色
时间: 2024-02-18 21:01:35 浏览: 104
要将QTableWidget中选中的单元格设置为某个颜色,可以通过继承QTableWidget并重写其selectionChanged方法来实现。
具体步骤如下:
1.定义一个继承自QTableWidget的类,并重写其selectionChanged方法。
```python
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
def selectionChanged(self, selected, deselected):
super().selectionChanged(selected, deselected)
for item in self.selectedItems():
item.setBackground(QColor(255, 0, 0)) # 设置选中的item的背景色为红色
```
2. 在创建QTableWidget时,使用自定义的MyTableWidget类来替代默认的QTableWidget。
```python
table_widget = MyTableWidget()
```
这样,当用户选择一个或多个单元格时,这些单元格的背景色就会被设置为红色。
如果需要将单元格的背景色恢复为默认颜色,可以在selectionChanged方法中先遍历之前选中的单元格,将它们的背景色恢复为默认值,然后再设置新选中单元格的背景色,例如:
```python
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
def selectionChanged(self, selected, deselected):
super().selectionChanged(selected, deselected)
# 遍历之前选中的单元格,将它们的背景色恢复为默认值
for item in deselected:
item.setBackground(QColor(255, 255, 255)) # 设置背景色为白色
# 设置新选中单元格的背景色为红色
for item in self.selectedItems():
item.setBackground(QColor(255, 0, 0)) # 设置选中的item的背景色为红色
```
这样,每次选中新单元格时,之前选中的单元格的背景色就会被恢复为默认颜色,新选中的单元格的背景色就会被设置为红色。
阅读全文