Не могу не отозваться на такую вежливую и редкую просьбу. 
Есть у виджетов методы 
virtual void	mouseMoveEvent ( QMouseEvent * event )
virtual void	mousePressEvent ( QMouseEvent * event )
virtual void	mouseReleaseEvent ( QMouseEvent * event )
Соответственно переопределяешь их в наследнике от QWidget (QScrollArea тоже является наследником 

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