c++,qt怎么判断鼠标点击是否在某个点上?

c++,qt怎么判断鼠标点击是否在某个点上?

重写鼠标按下事件函数,然后可以在里面使用globalPos或者pos进行获取对应坐标,就可以通过这些坐标与自己指定的的坐标进行比较,如果 x 和 y 都相等,那就确定鼠标点击的这个点就是你指定的这个点了!
头文件:
#include < QMouseEvent >
#include < QPoint >

protected:  // 重写此函数
    void mousePressEvent(QMouseEvent *event) override;

// 鼠标按下事件
void MouseEvent::mousePressEvent(QMouseEvent *event) {
    
    // 鼠标左键按下
    if (event->button() == Qt::LeftButton) {
    QPoint point_1 = event->globalPos() ;    // 这个获取到的坐标是全局的,即(0, 0)是在电脑的左上角
    QPoint point_2 = event->pos();    // 这个获取到的坐标是相对于运行窗口的,即(0, 0)是你运行时程序的窗口

    if (point_2.x() == 10 && point_2.y() == 10) {
        qDebug() << "鼠标点击在指定点上!";
    }

    // 鼠标中键按下
    } else if (event->button() == Qt::MidButton) {
    
    // 鼠标右键按下
    } else if (event->button() == Qt::RightButton) {

    }
}

问题解决,点个采纳吧!

用mousePressEvent事件对坐标进行处理, 坐标获取可以用 event->pos()

在鼠标移动或者点击的槽函数中获取鼠标的位置(用pos()函数),判断两个位置是否相等即可(一般不会完全相等,一般会有一个范围,比如目标点是A,鼠标如果在以A为圆心,半径为r的范围内,认为鼠标在这个点上,如果只用x和y相等来判断,几乎做不到,鼠标移动没有那么精确)