Domanda

Sto scrivendo un'applicazione GUI che funziona su Mac e vincendo e c'è un piccolo problema, che non so come risolvere. Nella mia applicazione ho una piccola finestra di anteprima (250 x 250 px) (chiamalo SW) in cui ha posizionato l'immagine. L'immagine può essere molto più grande di SW. Da qualche parte ho un cursore che implementa la funzione di zoom dell'immagine all'interno di SW. Il mio problema principale è implementare la funzione zoom su questa immagine.

Su ENTER ho:

  • immagine di origine ed è larghezza e altezza;
  • Visualizza immagine: è una copia ingrandita dell'immagine di origine;
  • Posizione dell'immagine ingrandita
  • La dimensione della vista è 250 x 250 px

Dovrebbe funzionare come zoom nei programmi di elaborazione delle immagini. Quando cambiamo il nostro valore di zoom l'immagine diventa più piccolo o più grande rispetto al centro viewport e alla posizione dell'immagine al suo interno. Possiamo spostare l'immagine all'interno di Viewport. Per una corretta implementazione di quel problema, è necessario calcolare le dimensioni e la posizione delle immagini all'interno della nostra vista. Ho già scritto un po 'di "algo" che implementa la modifica della dimensione dell'immagine. Sembra:

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

Ma non riesco a immaginare come posso calcolare la posizione sulla scena di quell'immagine ingrandita.

Qualcuno può aiutarmi con idee?

Se è importante sto usando QT Framework e QGraphicsView, QGraphicsScene e QGraphicsPixmapItem.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top