Есть следующий код для эмуляции нажатии мыши для объекта QWebView (view).
Проблема в том, что если задавать координаты напрямую - virtualClick(780,190);
то на разных разрешениях экраны эти координаты начинают плыть.
Два вопроса ?
1. Можно ли как-то корректировать точные координаты в зависимости от разрешения экрана и маштабирования окна.
Может вобще его можно отменить ?
2. Можно ли объекты flash посылать сигналы мыши напрямую в обход QWebView ?
В текущем коде я пытаюсь бороться с этим с попощью констант x_delta, y_delta. Но как-то криво проходит
void MainWindow::virtualClick(int x,int y)
{
QCursor pos;
QTime time;
QPoint point(x,y);
QRect frm = view->geometry();
int w=frm.width();
//hak
y_delta = 0;
switch (w)
{
case 1440:
x_delta = 0;
break;
case 1368:
x_delta = -50;
case 1280:
x_delta = -50;
case 800:
x_delta = -50;
default:
break;
}
point = view->mapToGlobal(point);
view->setFocus();
if (cursor) pos.setPos(point.x()+x_delta,point.y()+y_delta);
QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(x+x_delta,y+y_delta), Qt::LeftButton,
Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(view, &pressEvent);
QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(x+x_delta,y+y_delta), Qt::LeftButton,
Qt::LeftButton, Qt::NoModifier);
QCoreApplication::sendEvent(view, &releaseEvent);
}