qtablewidget 不高亮单个
时间: 2023-10-04 18:10:52 浏览: 43
QTableWidget 是一个用于显示表格数据的控件,你可以在它上面选择一个单元格或者一个区域。如果你希望某个单元格不能被高亮,你可以使用 QTableWidgetItem::setFlags() 方法将单元格的 ItemIsSelectable 标志设置为 false。
例如:
```
QTableWidgetItem *item = tableWidget->item(row, column);
item->setFlags(item->flags() & ~Qt::ItemIsSelectable);
```
这样就可以将指定的单元格设置为不能被高亮。
相关问题
修改qtablewidget选中高亮的颜色
你可以使用`QPalette`来修改`QTableWidget`的选中高亮颜色。以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QTableWidget, QHeaderView, QTableWidgetItem
from PyQt5.QtGui import QColor, QPalette
app = QApplication([])
table = QTableWidget()
table.setColumnCount(3)
table.setRowCount(5)
for row in range(5):
for col in range(3):
item = QTableWidgetItem('Item({}, {})'.format(row, col))
table.setItem(row, col, item)
# 设置表格选中的高亮颜色为绿色
palette = QPalette()
palette.setColor(QPalette.Highlight, QColor(0, 255, 0))
table.setPalette(palette)
# 设置表格的水平表头自动拉伸
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
table.show()
app.exec_()
```
在上面的代码中,`QPalette.Highlight`设置了选中高亮的颜色。你可以将其设置为任何你想要的颜色。
QTableWidget高亮行
要想高亮 QTableWidget 中的一行,可以使用以下代码:
```python
# 选中第2行
row_index = 1
table_widget.selectRow(row_index)
# 设置高亮颜色
highlight_color = QtGui.QColor(QtCore.Qt.yellow)
highlight_brush = QtGui.QBrush(highlight_color)
table_widget.item(row_index, 0).setBackground(highlight_brush)
```
以上代码中,`selectRow(row_index)` 将选中指定的行,`setBackground(highlight_brush)` 将该行的背景色设置为高亮颜色。你需要将 `row_index` 替换为你想要高亮的行的索引。