Название: QScrollArea прокрутка мышью Отправлено: NKovalev64 от Февраль 06, 2013, 13:59 На форме есть виджет QscrollArea. Как задать ему прокрутку не скролбарами, а так чтобы можно было зажать мышкой область виджета и "тащить" её.
Название: Re: QScrollArea прокрутка мышью Отправлено: Bepec от Февраль 06, 2013, 14:26 Отлавливать евенты мыши?
Название: Re: QScrollArea прокрутка мышью Отправлено: NKovalev64 от Февраль 06, 2013, 14:33 Отлавливать евенты мыши? Подробнее можно?Название: Re: QScrollArea прокрутка мышью Отправлено: Bepec от Февраль 06, 2013, 14:41 Не могу не отозваться на такую вежливую и редкую просьбу.
Есть у виджетов методы Код: virtual void mouseMoveEvent ( QMouseEvent * event ) Соответственно переопределяешь их в наследнике от QWidget (QScrollArea тоже является наследником :) ). move - получаешь когда мышка двигается при зажатой клавише. Press/Release - нажатие и отжатие клавиши мышки. Данные о месторасположении и нажатых клавишах ты можешь получить в QMouseEvent * event. Соответственно технология осторожно, псевдокод: /* Получаем нажатие правой кнопки, запоминаем координаты в переменной Пользователь двигает мышку, мы получаем евент move Смотрим там координаты, вычитаем их от переменной. Двигаем ScrollArea на необходимую величину (какую решай сам) Пользователь отжимает мышку - очищаем переменную. */ Название: Re: QScrollArea прокрутка мышью Отправлено: NKovalev64 от Февраль 06, 2013, 16:15 Спасибо большое!
Название: Re: QScrollArea прокрутка мышью Отправлено: Bepec от Февраль 06, 2013, 16:26 На здоровье. Ответить на адекватную просьбу - тоже удовольствие :)
Если всё понятно - добавьте к названию темы [РЕШЕНО] :) PS если нужна будет консультация - дарую вам однократное право вызова меня в ЛС и призыв меня в скайп/аську :) |