Qt 判断鼠标在控件上

需要注意的是,子窗口获取geometry,是相对于父窗口的相对位置,QCursor::pos()获取的是鼠标绝对位置,要不将父窗口的相对位置进行换算,要不将鼠标的绝对位置进行换算,这里本文采用将鼠标绝对位置换算到控件上,示例代码如下:

bool result = ui.tableView->geometry().contains(this->mapFromGlobal(QCursor::pos()));
//true代表在控件上,false代表不在控件上

 踩坑:

(1)如果有DockWidget窗口停靠的话,这个就不行了,本人测试过了┭┮﹏┭┮

 

 

新方法

 

bool result=ui.tableView->underMouse();
//true代表在控件上,false代表不在控件上

 

posted @ 2025-11-27 14:01  家煜宝宝  阅读(8)  评论(0)    收藏  举报