Qtableview 鼠标点击改变样式css
时间: 2024-10-04 12:02:58 浏览: 43
QTableView 封装,支持自动调整每一行和每一列的大小,只需要传入宽高和头就可以
QTableView 是 Qt 中的一个用于显示表格数据的组件,它本身并不直接支持 CSS 样式来处理鼠标点击事件。但是你可以结合 Qt 的信号槽机制(Signal and Slot mechanism)以及 CSS 来实现这种效果。
首先,在 HTML 输出的表格中,可以定义一个默认样式和一个选中样式。例如:
```html
<style>
.normal-cell {
background-color: white;
border: 1px solid #ccc;
}
.selected-cell {
background-color: lightblue;
font-weight: bold;
}
</style>
<table>
<tr>
<!-- 你的单元格在这里 -->
<td class="normal-cell" role="row"></td>
</tr>
</table>
```
然后,在 Qt 代码中,当用户点击 QTableWidget 或 QTableView 中的单元格时,你可以连接一个信号到槽函数来更改该单元格的CSS 类别:
```cpp
QTableView *tableView = new QTableView(parent);
tableView->setModel(yourModel); // 设置模型
// 创建信号连接
connect(tableView, &QTableView::cellClicked, this, [tableView](const QModelIndex &index) {
if (index.isValid()) {
auto cell = tableView->item(index.row(), index.column());
cell->setStyleSheet(cell->isSelected() ? ".selected-cell" : ".normal-cell");
}
});
```
在这个例子中,`cellClicked` 信号触发时,会检查当前点击的单元格是否已选中,如果选中则切换到 `selected-cell` 类别,否则切换回 `normal-cell`。
阅读全文