C++ (Qt)protected: virtual bool eventFilter(QObject *, QEvent *);
C++ (Qt) bool V1::eventFilter(QObject *obj, QEvent *event){ QTableWidget* tmp = dynamic_cast<QTableWidget*> (obj); if (event->type() == QEvent::HoverMove && (QApplication::mouseButtons().testFlag(Qt::LeftButton)) || (QApplication::mouseButtons().testFlag(Qt::RightButton)) ) { m_flag=1; tmp->verticalScrollBar()->setSliderPosition(tmp->verticalScrollBar()->sliderPosition()+(m_pastCoord-QCursor::pos().y())); m_pastCoord=QCursor::pos().y(); return true; } return QObject::eventFilter(obj, event);} void V1::on_listMenu_pressed(const QModelIndex &index){ m_pastCoord = QCursor::pos().y(); m_flag=0;}
C++ (Qt)V1::V1(QWidget *parent) : QWidget(parent), ui(new Ui::V1){...ui->listMenu->installEventFilter(this);...}
// вот это всё находится в вашем евент фильтре ;)if (event->type() == QEvent::MouseMove) { QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); if (mouseEvent.button() == Qt::LeftButton) // тут помоему логическая операция должна быть, не помню к сожалению. Но по идее прокатит. qDebug() << "Кто то мышку повтыкал да с кнопочкой зажатой левой!!! "; return true; }
C++ (Qt)if (event->type() == QEvent::HoverMove) { QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event); if (mouseEvent->button() & Qt::LeftButton) { ... return true; } };
QWidget(0xa82e20, name = "qt_scrollarea_viewport")
ui.treeWidget->viewport()->installEventFilter(this);