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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QwtPlotZoomer Как правильно его настроить?  (Прочитано 4980 раз)
silart
Гость
« : Август 17, 2011, 12:23 »

Добрый день всем!

Мне нужен график, который позволяет приближать выделенное левой кнопкой мыши изображение. При нажатии на правую кнопку мыши, график должен нарисовать предыдущее изображение.
В библиотеке QWT есть пример friedberg, который все это делает.
Зумер там настраивается вот так:

Код:
    QwtPlotZoomer* zoomer = new QwtPlotZoomer( canvas() );

    zoomer->setMousePattern( QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlModifier );
    zoomer->setMousePattern( QwtEventPattern::MouseSelect3, Qt::RightButton );

Только вот я совсем не пойму этот код. Что означают параметры функции setMousePattern?
Что такое паттерны мыши (и клавиатуры)? В документации толком не написано ничего. Что такое MouseSelect2 и чем он отличается от MouseSelect3? Объясните пожалуйста.
Записан
popper
Гость
« Ответ #1 : Август 17, 2011, 17:45 »

Судя по описанию в файле qwt_event_plot.h паттерны созданы для разных типов мышей (1, 2, 3 кнопки). Соответственно, для каждого типа мыши зуминг будет реализован таким образом, как указано в параметрах setMousePattern 
Записан
silart
Гость
« Ответ #2 : Август 18, 2011, 14:05 »

А с пареметрами setMousePattern() вы разобрались?
Что передается первым параметром, что вторым, что третьим?

В коде везде стоит Qt::RightButton вторым параметром, а выделение происходит левой кнопкой.
Я вот и понять не могу.
Записан
madRoger
Гость
« Ответ #3 : Август 18, 2011, 14:20 »

может просто менять границы осей графика. Получится тот же зум, только без всяких Zoomer'ов.
Записан
silart
Гость
« Ответ #4 : Август 19, 2011, 05:07 »

может просто менять границы осей графика. Получится тот же зум, только без всяких Zoomer'ов.
Ну также не интересно! Зумер так классно работает, причем сам, ниче делать не надо. А если менять границы осей, так это же надо дополнительный функционал писать.

Зумер у меня работает, я сделал как в примере. Только я понять не могу принцип его настройки.
Записан
popper
Гость
« Ответ #5 : Август 19, 2011, 16:05 »

класс qwt_plot_zoomer как наследник  qwt_plot_picker хранит набор паттернов - событий мыши - и переопределяет реакцию на эти события. если событие соответствует паттерну MouseSelect1, зоомер "увеличивает" выделенную область, MouseSelect3 - выводит предыдущий масштаб. методом SetMousePattern задается, какими кнопками будет реализован сам паттерн.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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