First of all I have never done what you wanted, so my advises might not work well
You might want to override :
void QAbstractScrollArea::setupViewport ( QWidget * viewport ) [protected slot]
This slot is called by QAbstractScrollArea after setViewport(viewport) has been called. Reimplement this function in a subclass of QAbstractScrollArea to initialize the new viewport before it is used.
You can actually either hide scrollbar provided by QAbstractScrollArea and display your own instead or subclass scrollbar and set it to itemView.