
Envoyé par
Niak74
Tu as essayé de forcer le scroll par quels méthodes?
ensureVisible() ?
en récupérant les QScrollBars ?
J'avais essayé ensureVisible et un scroll explicite avec les scrollbars. Ca ne marchait pas 

Envoyé par
Gulish
Ca devrait en effet être possible en forçant le scroll.
Sinon ,une autre piste est de faire un
QPainter->translate(QPoint(positionClickée)-QPoint(centreDeTonWidget))//et appliquer ton facteur de grossissement
Par contre tu perdras peut être une partie de ton image. Et bien sûr il faut que tu utilises QPainter pour redessiner ton image.
G.
Je fais comme suit pour dessiner mon image :
p.drawImage(0, 0, image.scaled(width(), height()));
(image étant une QImage biensûr)
Et le zoom :
1 2 3 4 5
| void ImageViewer::zoom(double factor)
{
resize(factor*width(), factor*height());
update();
} |
ImaveViewer, c'est la classe (qui est un widget) qui contient la scrollarea, l'image, etc).
J'ai du mal à voir comment caser le translate. Puisque l'appel à zoom demande à redessiner, mais ne redessine pas explicitement, puisqu'il faut être dans paintEvent() pour ça.
Donc j'enregistre la position du curseur lors de la demande de zoom, pour ensuite m'en servir dans paintEvent() comme tu l'as mentionné. J'ai tout bien compris ?
Partager