#include "MyTreeView.h" #include #include MyTreeView::MyTreeView(QWidget *parent) : QTreeView(parent) { } void MyTreeView::mousePressEvent(QMouseEvent *event) { qDebug()<<"mousePressEvent"; //实现点空白处取消选择 QPoint p = event->pos(); QModelIndex index = indexAt(p); if(!index.isValid()) { setCurrentIndex(QModelIndex()); return; } QModelIndex index2 = indexAt(event->pos()); int clickedColumn = index2.row(); qDebug() << "clickedColumn" << clickedColumn << endl; //调用基类的点击处理,不然点击的原有响应也失效了 //但如果就想禁用tree控件单击,不调用即可 QTreeView::mousePressEvent(event); } void MyTreeView::mouseReleaseEvent(QMouseEvent *event) { qDebug()<<"mouseReleaseEvent"; QTreeView::mouseReleaseEvent(event); } void MyTreeView::mouseDoubleClickEvent(QMouseEvent *event) { qDebug()<<"mouseDoubleClickEvent"; QTreeView::mouseDoubleClickEvent(event); } void MyTreeView::mouseMoveEvent(QMouseEvent *event) { qDebug()<<"mouseMoveEvent"; QTreeView::mouseMoveEvent(event); } void MyTreeView::keyPressEvent(QKeyEvent *event) { qDebug()<<"keyPressEvent"; QTreeView::keyPressEvent(event); } void MyTreeView::dragEnterEvent(QDragEnterEvent *event) { qDebug()<<"dragEnterEvent"; } void MyTreeView::dropEvent(QDropEvent *event) { qDebug()<<"dropEvent"; }