C++获得QHeaderView点击项的QModelIndex
时间: 2024-10-15 21:09:23 浏览: 32
在C++中,当你想要获取QHeaderView(比如QTableView的水平头视图)中的点击项对应的QModelIndex(模型索引),你可以监听`sectionClicked()`信号并提供相应的槽函数。这个信号会在用户单击头部单元格时触发,传递给你当前点击的行和列信息。
以下是一个简单的示例:
```cpp
void headerClicked(const QModelIndex &index) {
// 确保传入的是有效索引
if (!index.isValid()) {
qDebug() << "Invalid index!";
return;
}
// 模型索引对应于表头点击位置
QModelIndex modelIndex = tableView->model()->index(index.row(), index.column(), tableView->selectionModel());
qDebug() << "Clicked on model index: " << modelIndex.row() << ", " << modelIndex.column();
}
// 通过 connect 连接信号与槽函数
yourHeaderView->sectionClicked.connect(headerClicked);
```
在这个例子中,`headerClicked()`函数接收一个QModelIndex对象,表示点击发生的实际行和列。请注意,你需要使用`tableView->model()`来获取关联的模型,因为`sectionClicked`事件是在视图级别触发的。
阅读全文