Не могу не отозваться на такую вежливую и редкую просьбу.
Есть у виджетов методы
virtual void mouseMoveEvent ( QMouseEvent * event )
virtual void mousePressEvent ( QMouseEvent * event )
virtual void mouseReleaseEvent ( QMouseEvent * event )
Соответственно переопределяешь их в наследнике от QWidget (QScrollArea тоже является наследником
).
move - получаешь когда мышка двигается при зажатой клавише.
Press/Release - нажатие и отжатие клавиши мышки.
Данные о месторасположении и нажатых клавишах ты можешь получить в QMouseEvent * event.
Соответственно технология
осторожно, псевдокод:
/*
Получаем нажатие правой кнопки, запоминаем координаты в
переменнойПользователь двигает мышку, мы получаем евент move
Смотрим там координаты, вычитаем их от
переменной. Двигаем ScrollArea на необходимую величину (какую решай сам)
Пользователь отжимает мышку - очищаем
переменную.
*/