c++ 如何知道鼠标是否悬停在QT中的小部件上?

laximzn5  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(226)

我尝试在我的程序中实现,如果鼠标悬停在我的QChartView小部件上,我会返回光标的坐标。
我已经试过了,在小部件上安装了一个事件过滤器

ui->chartView->setMouseTracking(true);
ui->chartView->installEventFilter(this);

然后为鼠标事件编写方法

void MainWindow::mouseMoveEvent(QMouseEvent* event) {
    qDebug() << event->pos();
}

但是,我只有在点击主窗口并按住鼠标按钮时才能得到输出。当我点击小部件chartView时,我没有得到任何输出。
当鼠标悬停在图表视图上时,我需要获取输出

vuktfyat

vuktfyat1#

你不需要事件过滤器,你需要重新实现QWidget::enterEvent()QWidget::leaveEvent()方法。
当鼠标进入小部件时调用enterEvent(),当鼠标再次离开小部件时调用leaveEvent()

相关问题