The first code is: if (button->geometry().contains( button->mapFromGlobal( QPoint(kinect_x, kinect_y))))
This is failing in the nav bar. I made a mistake when I cut and pasted to this email. No error in the code though On Tue, Sep 17, 2013 at 4:47 PM, Mitchell Verter <mitchell.ver...@gmail.com>wrote: > I have been having issues using mapToLocal and mapToLocal > > I am wondering whether there are issues with using these functions within > laidout components? Laidout within the brower is a navigation bar; laidout > within the navigation bar are a series of QPushButtons. > > Consistently, there is a 100-pixel discrepancy between where the mouse > actually is and where QT seems to think it is. This problem occurs only > within the nav bar. The mouse position is correctly detected in other > parts of the browser . > > For example, the mouse was actually hovering over the RELOAD button when > it was detected as hovering over the HOME button > point= ( 567 , 112 ) HomeBtn QPoint(560,101) QPoint(603,132) > > > I've tried different variations of this code but keep on getting the same > error. Is something else going on here? > > Thanks > Mitchell > > > =========== > > CODE ONE > > if (button->geometry().contains( > addressBar->mapFromGlobal(QPoint(kinect_x, kinect_y)))) > ==================== > > > CODE TWO > > bool NavigationBar:: > checkGlobalPoint(QWidget * widge, int kinect_x, int kinect_y) > { > QPoint UL = widge->mapToGlobal(widge->geometry().topLeft()); > QPoint LR = widge->mapToGlobal(widge->geometry().bottomRight()); > > qDebug() << "point= (" << kinect_x << ", " << kinect_y << ") " << > widge->metaObject()->className() << " " << UL << " " << LR; > if (kinect_x >= UL.x() && kinect_x <= LR.x() && > kinect_y >= UL.y() && kinect_y <= LR.y()) > { > return true; > } > return false; > } > > ============= > > > CODE THREE > > bool NavigationBar::checkGlobalPoint(QWidget * widge, int kinect_x, int > kinect_y) > { > > int * x1 ,* y1 , * x2, * y2; > x1 = (int *)malloc(sizeof(int)); > y1 = (int *)malloc(sizeof(int)); > x2 = (int *)malloc(sizeof(int)); > y2 = (int *)malloc(sizeof(int)); > > QRect geo = widge->geometry(); > geo.getCoords(x1,y1, x2, y2); > QPoint UL = widge->mapToGlobal(QPoint(*x1, *y1)); > QPoint LR = widge->mapToGlobal(QPoint(*x2, *y2)); > > if ((kinect_x >= UL.x()) && > (kinect_x <= LR.x()) && > (kinect_y >= UL.y()) && > (kinect_y <= LR.y()) ) > { > return true; > } > return false; > } > >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest