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代表不在控件上

浙公网安备 33010602011771号