2016-10-14 5 views
0

У меня есть классическая кривая на графике, и я хочу установить масштаб в позиции курсора с помощью события мыши. Для этого я хочу:qwt plot move curve после масштабирования или масштабирования курсора

  • Установите Rescale: QwtPlotMagnifier :: Rescale (фактор); (Это сделано и работает)

  • Установите центр моего участка в положение моего курсора (я найти что-нибудь по этой части, по документации, StackOverflow или на других сайтах)

I не знаю, есть ли другой способ, и если у вас есть какие-либо предложения.

Спасибо!

ответ

0

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

Решение:

  • поймать событие виджета колеса в участке лупе
  • создать частный метод в участке лупе rescale_on_cursor(double factor, int x_cursor, int y_cursor, QSize parent_size)

В случае виджета колеса вы будете вызывать метод. Коэффициент будет равен 0,9 или 1,1 (unzoom или zoom), (x, y) позиция курсора и QSize размер родительского виджета.

Основная идея состоит в том, чтобы вывести qwt_plotMagnifier :: rescale() и изменить шаг, на котором вы определяете новый масштаб, вы установите процент от масштаба, который равен проценту от положения курсора.

Если значение x_cursor равно 20% от родительского размера, вы установите значениеAxisScale (20% (увеличение), 80% (увеличение)).

Смежные вопросы