qt tablewidget 点击某行高亮
时间: 2024-10-11 14:13:00 浏览: 23
在Qt中,TableWidget是一个常用的表格控件,如果你想实现在点击某一行时高亮显示,可以按照以下步骤操作:
1. 首先,在`QTableWidget`的槽函数中,添加鼠标按下事件处理,例如`mousePressEvent`:
```cpp
connect(tableWidget, &QTableWidget::cellClicked, this, &YourClass::onCellClicked);
```
这里,`YourClass::onCellClicked`是你需要自定义的槽函数名。
2. 定义`onCellClicked`函数,获取被点击单元格的索引,然后设置相应的背景色使其高亮:
```cpp
void YourClass::onCellClicked(const QModelIndex &index) {
if (index.isValid()) {
auto row = index.row();
auto column = index.column();
// 获取当前选中的行数,如果已有高亮行则取消
int currentHighlightRow = tableWidget->currentRow();
if (currentHighlightRow != -1)
tableWidget->setRowHidden(currentHighlightRow, true);
// 设置新选中的行高亮
tableWidget->setRowHidden(row, false);
tableWidget->item(row, column)->setBackground(QColor("yellow")); // 设置背景颜色为黄色示例
}
}
```
这会将点击的行设置为高亮,其他非点击行会被隐藏并恢复默认背景。
阅读全文