Russian Qt Forum
Ноябрь 24, 2024, 12:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отправка сообщений мыши для объекта QWebView  (Прочитано 2871 раз)
DenKor29
Гость
« : Апрель 03, 2015, 08:44 »

Есть следующий код для эмуляции нажатии мыши для объекта 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);

}

Записан
Bepec
Гость
« Ответ #1 : Апрель 03, 2015, 12:10 »

Тут зависимости конечно есть, но точность  получится никакая, к тому же при изменениях сайта формулу перерасчитывать придётся.
Я пытался что то сделать на Qt и C++, но не получилось.

Самый лучший вариант оказался Python и ghost. Там имеется всё для автоматизации.

PS эмуляция мыши в общем фигня, нужно сразу дёргать объекты.
Записан
DenKor29
Гость
« Ответ #2 : Апрель 03, 2015, 13:49 »

Тут зависимости конечно есть, но точность  получится никакая, к тому же при изменениях сайта формулу перерасчитывать придётся.
Я пытался что то сделать на Qt и C++, но не получилось.

Самый лучший вариант оказался Python и ghost. Там имеется всё для автоматизации.

PS эмуляция мыши в общем фигня, нужно сразу дёргать объекты.

Допустим разберу я код фрейма и найду свой объект flash.
Но как ему послать сиграл от мыши ?



Записан
Bepec
Гость
« Ответ #3 : Апрель 03, 2015, 14:25 »

ghost позволяет вроде бы послать клик. Смотрите документацию.
Записан
DenKor29
Гость
« Ответ #4 : Апрель 06, 2015, 08:04 »

ghost позволяет вроде бы послать клик. Смотрите документацию.

Мне нужно это сделать только через компилятор Minigw и qt.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 20.