Suite

Problème avec qgsmaptoolpan


j'utilise l'api c++ qgis 2.8.2 j'ai un problème étrange quand je veux utiliser le pantool pour mon canevas

j'ai utilisé ce code :

mpPanTool = new QgsMapToolPan((QgsMapCanvas*)mpMapCanvas); ((QgsMapToolPan*)mpPanTool)->activate(); ((QgsMapCanvas*)mpMapCanvas)->setMapTool((QgsMapToolPan*)mpPanTool);

la construction est bonne, lorsque je lance mon application et que je charge une carte raster ou s57 si je clique sur la carte ou sur le canevas, rien ne se passe jusqu'à ce que je déplace la souris lorsque je déplace la souris, il semble que la carte change l'origine en haut à gauche pointer et en définir un nouveau à la position de la souris par exemple si je clique sur la carte avec le bouton gauche de la souris et que je déplace la souris, la carte est automatiquement centrée avec le point supérieur gauche du canevas aux coordonnées de la souris

peut-être que j'oublie quelque chose, le panoramique fonctionne mais le problème est ce changement de coordonnées

s'il vous plait aidez


j'ai trouvé une solution dans mon application j'ai un raster, et je veux faire un panoramique du raster

voici le code que j'ai

void CMyQgsMapCanvas::mousePressEvent(QMouseEvent* pevent) { mMouseEvent = new QMouseEvent(pevent->type() , pevent->pos(), pevent->globalPos(), pevent->button(),pevent->buttons() , pevent->modifiers() ); mClickTimer.start(220); qDebug() << "Bouton ::" << mMouseEvent->button(); if ( pevent->button() == Qt::LeftButton ) { mCanvasProperties->panSelectorDown = true; QPoint lPos = pevent->pos(); mCanvasProperties->rubberStartPoint = lPos; } éviter->ignorer(); } void CMyQgsMapCanvas::mouseReleaseEvent( QMouseEvent* pevent) { mLeftButtonPressed=false; if ( pevent->button() == Qt::LeftButton ) { mCanvasProperties->panSelectorDown = false; mCanvasProperties->mouseButtonDown = false; } éviter->ignorer(); } void CMyQgsMapCanvas::mouseMoveEvent(QMouseEvent* pevent) { QPoint lPos = pevent->pos(); if(mCanvasProperties->mouseButtonDown == true) { panActionEnd(lPos); mCanvasProperties->rubberStartPoint = lPos; } setCursor(Qt::ArrowCursor); QgsMapCanvas::mouseMoveEvent(pevent); éviter->ignorer(); }

cela fonctionne bien après avoir chargé le raster dans le mapcanvas je peux le déplacer en déplaçant la souris en maintenant le bouton gauche enfoncé


Voir la vidéo: pyQGIS export each layer to image with basemap, legend (Octobre 2021).