Russian Qt Forum

Qt => Вопросы новичков => Тема начата: VVN от Ноябрь 26, 2011, 15:29



Название: Как получить координаты мыши, при обработке события от клавиатуры (график QWT)
Отправлено: VVN от Ноябрь 26, 2011, 15:29
Здравствуйте.

Есть график QWT который масштабирую.

Основа взята из уроков
http://www.prog.org.ru/topic_11884_0.html
http://qtlinux.narod.ru/qwtchartzoom.htm

Отдельное спасибо их авторам.

Перехватываются события элементов управления в

Код:
 eventFilter(QObject *obj,QEvent *event)

который зарегистрирован в канве

Код:
 qwtp->canvas()->installEventFilter(this);

Шкала по Х мне нужна только положительная.
При масштабировании я запоминаю, положение Х курсора мыши,
для того чтобы при масштабировании графика, эта точка на графике, оставалась на месте, а двигался  график по бокам.

Все работает при прокрутке колесом мыши.

Но мне нужно изменять масштаб клавишами '+', '-'

Я перехватываю события от клавиатуры в eventFilter

Код:
        if (event->type() == QEvent::KeyPress ||
            event->type() == QEvent::KeyRelease)
        {
           QKeyEvent *kEvent = static_cast<QKeyEvent *>(event);
           ......
        }

Тоже все замечательно, но тут главная проблема я не могу получить координаторы мыши

Если сделать так

Код:
    QMouseEvent *mEvent = static_cast<QMouseEvent *>(event);

То в mEvent получаю левые значения.

Проблему решил следующим образом, постоянно отслеживаю положение мыши и сохраняю ее координаты.

В принципе все работает, но хочется считать положение курсора мыши вместе с обработкой события от клавиатуры.

Подскажите как это реализовать.


Название: Re: Как получить координаты мыши, при обработке события от клавиатуры (график QWT)
Отправлено: twp от Ноябрь 28, 2011, 17:15
а какие координаты приходят? вообще то не мешало бы еще проверять что qwtp->canvas() == obj в eventFilter


Название: Re: Как получить координаты мыши, при обработке события от клавиатуры (график QWT)
Отправлено: VVN от Ноябрь 28, 2011, 17:44
вообще то не мешало бы еще проверять что qwtp->canvas() == obj в eventFilter

Это все сделано.

а какие координаты приходят?

Что то типа х = -17672346 y = -1723523


Название: Re: Как получить координаты мыши, при обработке события от клавиатуры (график QWT)
Отправлено: GreatSnake от Ноябрь 28, 2011, 22:14
Код
C++ (Qt)
QCursor::pos()