我有一个简单的问题。我想根据单击的列拦截具有不同行为的树视图上的单击事件。我相信有一个信号通过模型索引......但是如何识别列?谢谢你的帮助。
答案 0 :(得分:1)
检查QTreeView中使用的QItemSelectionModel来处理行o列中的选择或单击事件。使您的树视图可选,并使用其中一个默认信号。您有3种不同的信号来处理点击事件:
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
void currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous)
void currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
使用自定义插槽处理信号,并使用QModelIndex参数获取当前行和索引。例如:
void MainWindow::elementClicked(const QModelIndex& current, const QModelIndex& previous) {
const int row = current.row();
const int column = current.column();
qDebug() << "Clicked at " << row << column;
}