I'm writing an application that has to visualize ten data streams from linear cameras. Each camera/stream has its own QGraphicsView, that is inside a QDockwidget. I use the vertical scrollbar of the QGraphicsView to do the playback of the streams; a QTimer is used to call the function that determines the amount of scroll. Here is the code for the scroll

Qt Code:
  1. foreach(LinearView * LinearView, LinearViews)
  2. {
  3. int Position = Odometer / LinearView->CameraStep;
  4. if((abs(LinearView->LastPosition - Position)) > 1)
  5. {
  6. LinearView->VerticalScrollBar->setValue(Position);
  7. LinearView->LastPosition = Position;
  8. }
  9. }
To copy to clipboard, switch view to plain text mode 
The LinearView is a QGraphicsView with little modification, I have set these flags trying to increase speed

Qt Code:
  1. setRenderHint(QPainter::Antialiasing, false);
  2. setDragMode(QGraphicsView::NoDrag);
  3. setOptimizationFlags(QGraphicsView::DontSavePainterState);
  4. setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
  5. setTransformationAnchor(QGraphicsView::NoAnchor);
  6. setAttribute(Qt::WA_OpaquePaintEvent);
To copy to clipboard, switch view to plain text mode 
Now my problem is that not all the widget are updated at the same time: I have side by side more cameras with the same step, so I would expect to see them move all together; instead I see clearly that some camera moves before the others. Obviously the problem increase together with the amount of scroll done. So my question is: is there a way to forcefully sync the repaint of all the widget?
I hope to have been clear