crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QWheelEvent - прокрутка в обе стороны
warlock
  опции профиля:
сообщение 17.1.2010, 2:43
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 17.1.2010
Пользователь №: 1378

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня есть свойство класса. Я реализовал его инкрементирование при прокрутке колесика, но как реализовать его декрементирование, при прокрутке колесика мыши в обратную сторону?
На doc.trolltech.com подходящих методов не нашел.
На данный момент свойство увеличиваеться при прокрутке колеска как вперед, так и назад.

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 17.1.2010, 18:18
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(warlock @ 17.1.2010, 20:54) *
А чем для скроллинга или, например, масштабирования графика функции (в моем случае) это может быть плохо?
ну человек резко крутит, чтобы быстрее изменить (масштаб или позицию), а ты всегда (на каждое событие) изменяешь на фиксированную величину. Это не ожиданно для пользователя и не приятно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
azure
  опции профиля:
сообщение 18.1.2010, 16:01
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 17.1.2010, 17:18) *
Цитата(warlock @ 17.1.2010, 20:54) *
А чем для скроллинга или, например, масштабирования графика функции (в моем случае) это может быть плохо?
ну человек резко крутит, чтобы быстрее изменить (масштаб или позицию), а ты всегда (на каждое событие) изменяешь на фиксированную величину. Это не ожиданно для пользователя и не приятно.

Вот кусок кода из qwt_magnifier.cpp (библиотека qwt), в котором обрабатывается скролл и производится перемасштабирование

Раскрывающийся текст
/*
A positive delta indicates that the wheel was
           rotated forwards away from the user; a negative
           value indicates that the wheel was rotated
           backwards toward the user.
           Most mouse types work in steps of 15 degrees,
           in which case the delta value is a multiple
           of 120 (== 15 * 8).
        */
        double f = ::pow(d_data->wheelFactor,
            qwtAbs(we->delta() / 120));
        if ( we->delta() > 0 )
            f = 1 / f;

        rescale(f);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 20:15