Pregunta

Estoy escribiendo una aplicación GUI que funcione en Mac y Win y hay un pequeño problema, que no sé cómo resolver. En mi aplicación tengo una pequeña ventana de vista previa (250 x 250 px) (deje que lo llame SW) en el que colocó la imagen. La imagen puede ser mucho más grande que SW. En algún lugar tengo un control deslizante que implementa la función de zoom de la imagen dentro de SW. Mi principal problema es implementar la función de zoom en esta imagen.

En enter tengo:

  • imagen de origen y su ancho y altura;
  • Ver imagen: es una copia con zoom de la imagen de origen;
  • Posición de la imagen zoomed
  • El tamaño de la ventana gráfica es de 250 x 250 px

Debe funcionar como zoom en programas de procesamiento de imágenes. Cuando cambiamos nuestro valor de zoom, la imagen se vuelve más pequeña o más grande en relación con el centro de la vista y la posición de la imagen dentro de ella. Podemos mover la imagen dentro de la ventana gráfica. Para la implementación correcta de ese problema, necesitamos calcular el tamaño y la posición de las imágenes dentro de nuestra vista. Ya escribí algunos "algo" que implementan la modificación del tamaño de la imagen. Parece:

float one = (source_original_size - thumbnail_size) / 100;
int bigger_side_size = qRound((100-value) * one) + thumbnail_size;

Pero no puedo imaginar cómo puedo calcular la posición en la escena de esa imagen zoom.

¿Alguien puede ayudarme con ideas?

Si es importante, estoy usando el marco QT y QGraphicsView, QGraphicsScene y QGraphicsPixmapItem.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top