¿Se puede utilizar QOpenGLWidget como ventana gráfica de QGraphicsView?
Cuando miré personalmente el ejemplo de svgmap en qwt, encontré dónde aparecía el código fuente para acercar y alejar, pero busqué durante mucho tiempo sobre la posición de movimiento y no pude encontrarlo. Sé dónde aparece en el código fuente. A partir del seguimiento, se encuentra que aparece en void QwtMagnifier.:widgetMouseMoveEvent(QMouseEvent *mouseEvent)::widgetMouseMoveEvent(QMouseEvent *mouseEvent) es. no ejecutado (o no tiene efecto).
Más tarde, miré el ejemplo de QT: imageviewer y sentí que estaba relacionado con Scroll, y como necesitaba mostrarse, estaba relacionado con View, así que dejé GraphicScence fuera de la ecuación por ahora. .
En void QGraphicsView::mouseMoveEvent(QMouseEvent *event), después del rastreo, se encuentra que está relacionado con el siguiente código:
if (d-gt; dragMode == QGraphicsView::ScrollHandDrag) {
if (d-gt;handScrolling) {
QScrollBar *hBar = horizontalScrollBar();
QScrollBar *vBar = verticalScrollBar( );
QPoint delta = evento-gt; pos() - d-gt; lastMouseEvent.pos()
hBar-gt; (isRightToLeft()? delta.x(): -delta.x());
vBar-gt; setValue(vBar-gt; value() - delta.y());
QPoint delta = event-gt; pos() - d-gt; lastMouseEvent.y()
// Detecta cuánto nos hemos desplazado para eliminar la ambigüedad del desplazamiento
// haciendo clic .
d-gt;handScrollMotions;
}
}
d-gt;mouseMoveEventHandler(evento) ;
}
}
// Detectar cuánto hemos desplazado para diferenciar entre desplazamiento y clics